问题
单项选择题
已有定义:int i,a[10],*p;,则合法的赋值语句是( )。
A.p=100;
B.p=a[5]
C.p=a[2]+2
D.p=a+2;
答案
参考答案:D
解析: 本题中定义了一个整型数组a和一个整型指针变量p。选项A中将一个整型数赋值给一个指针变量,C语言规定,只能将地址赋给指针变量,故选项A不正确。选项B中a[5]为一数组元素,同样不是一个地址,故选项B不正确。选项c中a[2]为一数组元素,同样是一个整型数据,不是个地址,故选项C不正确。数组名a代表数组首地址,首地址加2代表第3个元素的地址,将该地址赋值给指针变量,故选项D正确。所以,4个选项中选项D符合题意。