说明语句如下:int a[10]={1,2,3,4,5,6,7,8,9},*p=a;则数值为6的表达式是( ).
问题描述:
说明语句如下:int a[10]={1,2,3,4,5,6,7,8,9},*p=a;则数值为6的表达式是( ).
A.*p+6 B.*(p+6) C.p+5 D.*p+=5
答
D.
表达式“*p = a”说明p指向a[0]的位置;
那么 *p + 6 = a[0] + 6 = 7; A错;
p指向a[0]的位置,则p + 6 指向a[6]的位置,
那么 *(p + 6) = a[6] = 7; B错;
p是一个指针,p的值本身是一个地址,p + 5显然不可能为5; c错;
上面说了,p指向a[0]的位置,那么 *p = a[0] = 1;
*p += 5; 等同于 a[0] += 5; 等同于 a[0] = a[0] + 5 = 1 + 5 = 6;
显然只有D正确;