为您找到"
数组问题 int a[5],*p;p=a;p=&a[0];p=&a;都是什么含义
"相关结果约100,000,000个
对于int a[5],*p;p=a; 或p=&a[0]是正确的 p=&a严格来说是错误的 首先要搞清楚a与&a的区别:a表示数组首元素的首地址,即元素a[0]的地址;&a表示整个数组的地址。二者的值是相同的,但意义并不一样。正如成...
int a[5];//a是指针常量,表示的是数组首元素的地址,即a=&a[0]。int *p=a;p=&a[0];//因为a=a[0],所以p=a 和p=&a[0]是等价的。p=&a//int *p,p是一个指向int类型的指针,而&a表示的是指向整个...
在数组中,数组名表示首地址常量。a等同于&a[0]。所以p=a。就是p指向a首地址。p=&a是错的,a已经是地址里。可以写p=&a[0]。
正确答案是:D &a[5]就是a[5],下标越界了 a就是a[0],a[0]+2不是对数组元素的正确引用 同理,*(p+5)就是a[5],下标越界了 而* (a+2)就是a[2]
则*a+2为a[0]+2,不是a[2],错误 C选项中*(p+5)p+5=a+5为a[5]的地址 (p+5)为a[5],如同A中,数列中没有a[5]这个元素,错误。D选项中,*(a+2)a+2为a[2]的地址 (a+2) ==a[2]与a[2]...
先上结论:对于int a[5],*p;p=a; 或p=&a[0]是正确的 p=&a严格来说是错误的 首先要搞清楚a与&a的区别:a表示数组首元素的首地址,即元素a[0]的地址;&a表示整个数组的地址。二者的值是相同的,但意义并不一...
题目有点小问题哦:int a[5] ;int *p=a 那么p中存放的为数组a的首地址,相当于p=&a[0] ;那么p+2的值为元素 a[2]的地址 ;a[2]是数组 a的第3个元素 ;所以p+2表示第__3__个元素的地址。
正确引用数组元素的 是 *(a+2), 它等同 a[2];(p+5) 错在超界了。如果是 *(p+2) 或 *(p+4) 那么也是对的。 *(p+5) 指向 a[5], 按声明,下标最大到 a[4]。&a[5] -- 也是下标超界 ...
也就是a[0]的地址),p+2就是a[2]的地址,相当于&a[2]。&a[5]是错的,访问越界了,数组元素最后一个是a[4]。a表示数组的首地址,本身是地址常量,不能赋值。所以a++是错了。&a也是错的,a本身就是地址。
D正确,选D。因为:A:语法合法,但[5]越界了。B:a+2是地址,不是元素。C:与A一样,只是指针写法,p+5越界了。