黑马程序员技术交流社区

标题: 数组名和&数组名到底是什么? [打印本页]

作者: 洪吉童    时间: 2015-10-4 09:37
标题: 数组名和&数组名到底是什么?
定义一个数组int a[5],这个a究竟是个什么?&a又是什么?怎么理解呢?如果a是一个int*型的指针常量,&a是一个int[5]*的指针常量,那sizeof(a)=20,又怎么解释?





作者: wwf707542865    时间: 2015-10-4 23:37
a是数组名,在int *p=a的时候也可以代表数组第一个元素的地址,等效于&a[0],所以可以说a是一个int*的指针,而&a是数组本身的地址,接收它最好用int [5]*,因为a只有在给指针赋值的时候才代表数组第一个元素的地址,所以sizeof(a)中的a不等于&a[0],而代表的是数组本身,所以sizeof(a)是整个数组的长度,结果为20
作者: A侠    时间: 2015-10-5 00:15
???????????????????????????
作者: 洪吉童    时间: 2015-10-5 08:12
wwf707542865 发表于 2015-10-4 23:37
a是数组名,在int *p=a的时候也可以代表数组第一个元素的地址,等效于&a[0],所以可以说a是一个int*的指针,而& ...

是的,只能这样记住了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2