已知:int x[]={1,3,5,7,9,11},*p=x;则能正确引用数组元素的语句是

问题描述:

已知:int x[]={1,3,5,7,9,11},*p=x;则能正确引用数组元素的语句是
A x B *(--p) C x[6] D*(++p)
帮我每个选项分析下
B D感觉不是类似吗?我选的时候首先就把B D给排除了

A.x是数组名.数组名代表数组首元素的地址,是一个指明针型常量.
B.*(--P)是P先自减,再取所指向的元素.但p原先指向首元素x[0],自减后越界了.
C.当一个数组x[]省略了中括号里的数(用来指定数组长度)时,说明花括号里为全部数组元素.所以这个数组只有x[0]~x[5].
D.类似于B,*(++P)取了x[1]的值.正确.但如果P取了最后一个数,++之后不也是越界了吗嗯,没错。我也考虑过,但只能这么说了。1.这是道选择题,这个是最合理的。 2.题目条件里指定了*p=x,所以*(++P)正确是不可否认的,至于后面的就不在这道题考虑中。呵呵,说个题外话,练习不重能否做出来,重在是否学到知识。既然LZ想到了这点,就说明你在这方面更一步了解了,这不正是达到了练习的目的吗?