若有以下C语言语句,且0≤i<10,则对数组元素的错误引用是(29)。    int a[i]={1,2,3,4,5,6,?,8,9,0),*p,i;    p=a;

admin2009-02-15  34

问题 若有以下C语言语句,且0≤i<10,则对数组元素的错误引用是(29)。    int a={1,2,3,4,5,6,?,8,9,0),*p,i;    p=a;

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

答案B

解析 由于C语言规定数组名代表数组中第一个元素的地址,因此选项A的*(a+i)与a等价。由于指针变量p的初值为数组a的首地址,即p指向a,因此p-a的结果为0,选项C的a[p-a]相当于a[0]。对于选项D,&a代表a的地址,所以*(&a)表示该地址所指向的变量a。因此选项A、C和D都能实现对数组a中元素的正确引用。对于选项B,指针变量p指向数组a的首地址,与整数值i相加后,结果仍是地址值,它表示数组a中的第i个元素的地址,显然这不是对数组元素的正确引用。
转载请注明原文地址:https://jikaoti.com/ti/eiW7FFFM
0

相关试题推荐
最新回复(0)