黑马程序员技术交流社区
标题:
数组的地址,首元素地址,数组名的地址
[打印本页]
作者:
1936064423
时间:
2016-11-13 20:25
标题:
数组的地址,首元素地址,数组名的地址
怎么区分
作者:
mfsara
时间:
2016-11-17 08:29
数组名代表了数组首元素的地址,但却并不是首元素的地址,可能都没放在一个存储区。
test.c:char c[10]="aabsdsf";
printf("%s\n",c);
printf("%p\n",c);
printf("%p\n",c[0]);
printf("%p\n",c[1]);
printf("%p\n",c[2]);
printf("%p\n",c[3]);
printf("%p\n",c[4]);
结果c[0]与c[1]的地址值一样,而c[1]与c[2]地址差1个字节,与c[3]差18个字节,这正好是a--s之间ASICC的距离。不是又说数组分配的是一段连续的内存吗?为什么会出现这般呢。对于一个已赋值的字符数组,在内存中又是怎么存储的呢?还有字符数组名可不可以理解成一个指针,它里面存的是数组首元素的值?新手上路,实在不懂,求指导。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2