问题
单项选择题
有如下说明: int a[10] ={1,2,3,4,5,6,7,8,9,10},* p=a; 则数值为9的表达式是
A.*p+9
B.* (p+8)
C.* p+=9
D.p+8
答案
参考答案:B
解析: 按照C++语言的数组元素的引用方法,如数组元素a[0] ,可以用表达式 * (p+0) ,即* p来引用,对于数组元素a[1] ,可以用表达式 * (p+ 1) 来引用,在这里,p+1的值就是数组元素a[1] 的地址,对此地址使用“间接访问运算符”:* (p+1) 就代表存储单元a[1] ,注意一对圆括号不可少。同样,对于数组元素a[2] ,则可以用表达式 * (p+2) 来引用…,对于数组元素a[9] ,可以用表达式 * (p+9) 来引用。因此,当指针变量p指向a数组的起始地址时,若0≤i< 10,则数组元素a[i] 可以用表达式 * (p+i) 来引用。