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

admin2010-07-28  27

问题 设有以下语句,对a数组元素的引用中(其中O≤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))

答案8

解析 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/9f9p777K
0

最新回复(0)