已经定义int a[10],*p;,则合法 复制表达式是?A.p=100 B.p=a[5] C.p=a[2]+2 D.p=a+2 求高手!

如题所述

第1个回答  2011-12-20
答案选d
数组名代表该数组首地址,也就是一个指针
int *p;定义了一个指针p,
看答题选项可知是对指针的操作
D选项也就是指针p向下移动两个单位
因此D是正确答案
第2个回答  2011-12-20
D.p=a+2 ;
p是一个指针,所以应该给它赋地址值。这里a可表示数组a[10]的首址
在某些情况下可以直接给p赋常量,但这种做法不是很合法的,只有在嵌入式的时候,有涉及到强制跳转到某个地址时可以用到
第3个回答  推荐于2021-02-12
D.p=a+2追问

理由?
谢谢

追答

p是个指针,所以只能用地址给它赋值
而ABC都是用数值给p赋值

本回答被提问者采纳