指针——字符指针
一,代码尝试
看一段代码,你认为的结果是什么呢?
#include<stdio.h>
//1-1字符指针(内存存放)
int main()
{char str1[] = "hello";//数组str1char str2[] = "hello";//数组str2char* str3 = "hello";//指针str3char* str4 = "hello";//指针str4if (str1 == str2)printf("same\n");elseprintf("not\n");if (str3 == str4)printf("same\n");elseprintf("not\n");return 0;
}
或许看到这串代码,你完全没有思路去解决,但不要着急,跟着小编的步伐走,最后你一定能够理解的!!!
二,基本知识
(1)字符指针的两种不同指向
1.指向地址:如下
char ch = 'a' ; //定义一个字符变量ch,赋值为 'a'
char *pc = &ch ;//定义一个字符指针指向变量ch的地址
2.指向字符串:如下
char* pa = "hello" ; //定义一个指针指向字符串
(需要注意的是该处的字符串为常量字符串,是不可更改的)
三,图片分析上述代码
(1)首先来看两个数组 arr1 和 arr2
(2)再来看两个指针
(四)代码再次分析注释
#include<stdio.h>
//1-1字符指针(内存存放)
int main()
{char str1[] = "hello";//数组str1,开辟一块内存空间1,用来存放hellochar str2[] = "hello";//数组str2,开辟一块内存空间2,用来存放hellochar* str3 = "hello";//指针str3,指向原本hello所在内存首元素地址,由于hello为常量字符串,//所以在内存中只开发一块空间,即str3和str4指向的地址一样char* str4 = "hello";//指针str4,指向原本hello所在内存首元素地址if (str1 == str2)printf("same\n");//不打印,由于是str1和str2地址不同elseprintf("not\n");//打印if (str3 == str4)printf("same\n");//打印elseprintf("not\n");//不打印return 0;
}
(本文章来自于小编学习总结,如有与其他视频教学内容重复请见谅)