问题
单项选择题
若有定义语句:double x[5]=1.0, 2.0, 3.0, 4.0, 5.0, *p=x; ,则错误引用x数组元素的是( )。
A) *p
B) x[5]
C) *(p+1)
D) *x
答案
参考答案:B
解析: 本题考查的是通过指针引用数组元素。本题首先定义了一个包含5个double元素的数组x,并定义了一个double指针p指向了该数组。*p表示取p所指地址的内容,即x[0]的内容,所以选项A)正确;*(p+1)表示取p+1所指地址的内容,即x[1]的内容,所以选项C)正确;*x表示取x所指地址的内容,在C语言中,数组名其实也是一个指针,只不过它所指向的地方不能被改变,所以*x等价于x[0],所以选项D)也是正确的。因为x数组包含5个元素,所以它的下标范围是0~4,故选项B)的x[5]溢出了,应该选择B)。