我们初学时经常把指针当成地址用,其实指针和地址是有差别的。
指针是一个变量,存放的是地址。很好理解,但是当指针存放字符串地址时,就麻烦多了。
假设有一个字符串
char a[22]="4544adas44456";
char *p = a;
printf("%p\n",p); //0x7ffdf03a6010
printf("%p\n",*p); //0x34
printf("%p\n",p[0]); //0x34
printf("%p\n",a); //0x7ffdf03a6010 //a+1 --> a + 1
printf("%p\n",&a); //0x7ffdf03a6010 //&a+1 --> a + sizeof(a)
printf("%p\n",&a[0]); //0x7ffdf03a6010 //
指针、字符串的变量名、首地址、第一个字符的地址 是相同的位置。
但是
char a[22]="

本文探讨了C语言中指针和地址的概念差异,指出指针是一个存放地址的变量,尤其在处理字符串时需要注意其特殊性。在函数参数传递中,数组和指针虽然表现相似,但本质不同。通过示例展示了指针运算和数组操作的差异,并预告了对二维数组的进一步探索。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



