设有以下语句,对a数组元素的引用中(其中0<=i<10)不正确的是 int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

admin2013-02-27  28

问题 设有以下语句,对a数组元素的引用中(其中0<=i<10)不正确的是    int  a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

选项 A、a [p-a]
B、*(&a)
C、p
D、*(*(a +i))

答案D

解析 本题考核数组与指针。 A选项中,p为指针,数组名a代表数组的首地址,所以p-a就是指针到数组首地址的偏移量。B选项中,&a是取数组a中第i个元素的地址,而对于 *(&a),  由指针运算符*的运算规则可知,语句 *(&a)就是返回地址&a空间中存放的值,也即 a。C) 选项,由于指针p已指向数组a,所以p就等于a小这是常用的一种数组元素引用方式。D) 选项是以指针方式对数组元素进行引用,由于a只是代表数组的首地址,并不是指针,所以表达式 *(*(a+ i))是错误的,正确的引用应该为:*(*(p+ i))。
转载请注明原文地址:https://kaotiyun.com/show/RzNp777K
0

最新回复(0)