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

问题描述:

定义数组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[]的地址!
1个回答 分类:综合 2014-09-27

问题解答:

我来补答
一个是声明时初始化,一个是先声明后赋值,在C语言里两者等价.
更好的写法应该是int *p=a;因为C语言数组名等于首个元素的地址,
也就是a == &a[0]
 
 
展开全文阅读
剩余:2000
上一页:单调性最小值
下一页:溶质质量