A、s[i+10] B、*(s+i) C、*(i+s) D、*((s++)+i)
应该选哪个?顺便解释一下~~谢谢~
最后一个D选项是错误的,s++是一个表达式,不能对表达式进行求指针运算,其他3个答案都是正确的!!追问
在2维数组中有 pi=a *(pi[i]+j)表示a[i][j] pi[i]+j不算是表达式吗?
追答确实是,你可以重新定义一个指针,然后把数组地址赋给这个指针,第4个答案就是对的了
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-05-11
D
数组名被当做常指针,所以不能对其进行自加运算。追问
数组名被当做常指针,所以不能对其进行自加运算。追问
额。。。。常指针。。是什么?
追答就相当于常量啊。是不能被改变的,试图改变它编译器会报错。
比如
const int max = 100; //定义一个整形常量max=100 就是100了
max = 200; //试图修改它,编译器会报错
再说的详细点
int a = 3;
int b = 2;
int const *p = &a; //p是一个常指针,初始化为a的地址
p = &b; //编译器会报错,p是常指针,只能指向a的地址,不能改变它
第2个回答 2012-05-11
D是错误的。
s是数组的首地址,不能做++运算
s是数组的首地址,不能做++运算
第3个回答 2012-05-11
D