作业帮 > 综合 > 作业

定义数组a[ ],为什么int *p=&a[0];等于int *p; p=&a[0];

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/28 20:10:12
定义数组a[ ],为什么int *p=&a[0];等于int *p; p=&a[0];
如果
int a;
int *p;
p=&a;
*p=a;
这里的指针变量p放的是a的地址,*p就是指a的内容,如果上式成立,那么关于这个如果写成int *p=&a就不对了?为什么
感觉是*p放的是内容,int *p=&a[0];根据优先级,好像应该是说把a[ ]的地址给*p,就是说p里面放的是a[ ]
地址的地址,而*p则等于a[]的地址!
一个是声明时初始化,一个是先声明后赋值,在C语言里两者等价.
更好的写法应该是int *p=a;因为C语言数组名等于首个元素的地址,
也就是a == &a[0]