首页 > 试题广场 >

若有以下说明,且0=i10,则对数组元素的错误引用是()

[单选题]
若有以下说明,且0<=i<10,则对数组元素的错误引用是()。

int a[] = {0,1,2,3,4,5,6,7,8,9}, *p = a,i;


  • *(a+i)
  • a[p-a+i]
  • p+i
  • *(&a[i])
第二项p-a这个不是指针变量减数组名,这个为什么可以啊?求解
发表于 2018-11-19 22:56:28 回复(3)
鼠头像
B选项p-a得到的是空指针NULL,也代表数值0,所以B项可以。
发表于 2019-10-28 23:48:52 回复(0)
P+i没有解引用
发表于 2018-05-22 22:05:26 回复(0)
数组元素 P是指向数组首元素的指针 p+i 表示移动sizeof(数组类型)个位 之后 p+i表示的还是指针 该指针指向数组元素 不是直接的数组元素 它存放这所指向数组元素的地址
发表于 2018-05-21 18:20:05 回复(0)
C选项应为 *(p+i)
发表于 2019-02-26 14:57:58 回复(0)
A,D正确;
B:两个指针可以相减,p - a = 0;
C:p+i得到一个指针,没有对该指针进行解引用
发表于 2018-11-27 16:34:56 回复(1)
我的一帧 p 和 a 都是指针,能相减么???
发表于 2018-08-16 10:54:49 回复(1)
第二项等价于a[i]
发表于 2018-07-11 16:15:38 回复(0)