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

admin2013-02-27  21

问题 设有以下语句,对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))

答案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/rcVp777K
0

最新回复(0)