问题 单项选择题

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

A.a[p-a]

B.*(&

C.p

D.*(*(a +)

答案

参考答案:D

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

单项选择题
单项选择题