若有以下定义,则对a数组元素的正确引用是_________. int a[5],*p=a; a)*&a[5] b)a+2 c)*(p+5) d)*(a+2)

若有以下定义,则对a数组元素的正确引用是_________.
int a[5],*p=a;
a)*&a[5] b)a+2 c)*(p+5) d)*(a+2)

答案是 D。
A项,由于 a[5] 已经超出数组外了,所以 *&a[5] 不是 数组元素。
B项,a+2 是a[2]的地址,不是数组元素。
C项,*(p+5)相当于a[5],已经超出数组范围,不是数组元素。
D项,正确,*(a+2)相当于 a[2]。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-17
D
dongyue2008的解答是对的。

c语言选择题 我做了就是想对答案
(一)选择题1.若有以下定义,则对a数组元素的正确引用是___D___. int a[5],*p=a; a)*&a[5] b)a+2 c)*(p+5) d)*(a+2)2.若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为___A___. a)*(a[i]+j) b)(a+i) c)*(a+j) d)a...

若有以下定义,则对a数组元素的正确引用是( )。 int a[5],*p=a; A...
D正确,选D。因为:A:语法合法,但[5]越界了。B:a+2是地址,不是元素。C:与A一样,只是指针写法,p+5越界了。

...则对a数组元素的正确引用是什么 A *&a[5] B *a+2 C *(p+5) D...
正确答案是:D &a[5]就是a[5],下标越界了 a就是a[0],a[0]+2不是对数组元素的正确引用 同理,*(p+5)就是a[5],下标越界了 而* (a+2)就是a[2]

C语言若定义int a[5],*p=a;则对a数组元素正确引用为哪个?为什么?_百度...
B:a+2是数组第3个元素的地址 C:越界,类似A D:正确

若有定义int a[5],*p=a;则正确引用数组元素的是 a *&a[5] b *a+2...
正确引用数组元素的 是 *(a+2), 它等同 a[2];(p+5) 错在超界了。如果是 *(p+2) 或 *(p+4) 那么也是对的。 *(p+5) 指向 a[5], 按声明,下标最大到 a[4]。&a[5] -- 也是下标超界 a+2 是 a[0]+2, 不是 引用 1个 数组元素,而是表达式。

...若有以下定义和语句,则对a数组元素的正确引用为?
首先有定义:int a[2][3]:这定义了一个二维数组a,它有 2 行 3 列,总共可以存放 2×3 = 6 个int类型的元素。可以把它看作是由两个一维数组组成的数组,每个一维数组有 3 个元素。(*p)[3]:定义了一个指针p,p是指向一个包含 3 个int类型元素的数组的指针。然后p = a,这使得p指向...

若以下定义,则对a数组元素地址的正确引用是(D)。为什么是D?_百度知...
A:因为a的长度是5,p指向a,p+5已经超出了a的最后一个元素,所以不对,如果是01234其中一个那么是对的。B:*a先计算,得到a里第一个元素的值,再加1,当然不是地址了,而是地址的值了 C:a本身是一个数组,数组再用&取地址就会得到数组的地址,数组的地址虽然和数组元素的首地址相同,但是...

...int a[4][5],(*p)[5]; p=a; 下列对数组a 数组元素正确的引用形式是...
对于选项B,首先p+3表示指向"二维数组a第3行首地址"的指针,那么*(p+3)也就是得到指针所指之处的值 即"二维数组a第3行首地址"。【注意,**(p+3)即*(*(p+3)+0)才表示获得第3行第0列的元素值】对于选项D,首先*(p+1)是获得二维数组a第1行首地址,再加3表示向后偏移三个元素,即*(...

10、有如下定义:int a[5],*p; p=a;则下列描述错误的是 [10] 。_百度...
B a是指针常量,常量不能赋值!!!

...int a[4][5], (*p)[5]; p = a; 则对a数组元素
如果定义int (*p)[n];p1=a;p1++后,p指向a[1][0];则p+j将指向a[0]数组中的元素a[0][j]。由于a[0]、a[1]┅a[M-1]等各个行数组依次连续存储,则对于a数组中的任一元素a[i][j],指针的一般形式如下:p+i*N+j,相应的如果用p来表示,则为*(p+i)+j;元素a[i][j]相应的...

相似回答