问题
单项选择题
有以下程序段
int a [10]=1,2,3,4,5,6,7,8,9,10,*P=&a[3],b;
b=p[5];
b中的值是
A.5
B.6
C.8
D.9
答案
参考答案:D
解析:C语言中规定:一个数组名代表它的起始地址。本题中,定义了一个长度为10的数组a并赋初值,数组名a就是数组的起始地址,由于数组下标是从0开始,因此a[0]的地址也是a的值,a[1]的地址可以用a+1表示,也就是说a+1指向数组a中下标为1的元素,同样a+i是a[i]的地址,*p=&a[3]表明指针变量p指向元素a[3],即p指向数组a的第4个元素4,p[5]的值应为数组a中的第9个元素的值即a[8)的值,即,p[5]=9,所以b=9。