A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

定义一个数组int a[5],这个a究竟是个什么?&a又是什么?怎么理解呢?如果a是一个int*型的指针常量,&a是一个int[5]*的指针常量,那sizeof(a)=20,又怎么解释?




3 个回复

倒序浏览
a是数组名,在int *p=a的时候也可以代表数组第一个元素的地址,等效于&a[0],所以可以说a是一个int*的指针,而&a是数组本身的地址,接收它最好用int [5]*,因为a只有在给指针赋值的时候才代表数组第一个元素的地址,所以sizeof(a)中的a不等于&a[0],而代表的是数组本身,所以sizeof(a)是整个数组的长度,结果为20
回复 使用道具 举报
???????????????????????????
回复 使用道具 举报
wwf707542865 发表于 2015-10-4 23:37
a是数组名,在int *p=a的时候也可以代表数组第一个元素的地址,等效于&a[0],所以可以说a是一个int*的指针,而& ...

是的,只能这样记住了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马