c语言一道题,我看哪个都不对,答案是b,为啥啊
2个回答
2017-08-02 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
向TA提问 私信TA
知道合伙人教育行家
采纳数:17564
获赞数:65148
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……
向TA提问 私信TA
关注
展开全部
四个选项都不对,题目错误
解析:
A.
&(a+1),因为a是指向数组首元素的const指针,所以a+1指向a[1],即a+1是a[1]的地址,&对(a+1)取地址,要求操作数不能为表达式,所以&(a+1)错误,如果定义中*p=a,改成*p=a+1,然后&p可以得到指向(a+1)的地址,不过结果是地址,不是数组的元素值。
B.
a++,显然是错误的,因为a是指向数组首元素的const指针,const指针不能进行自加操作
C与D的值都是地址,不是数组元素的值,也不正确。
解析:
A.
&(a+1),因为a是指向数组首元素的const指针,所以a+1指向a[1],即a+1是a[1]的地址,&对(a+1)取地址,要求操作数不能为表达式,所以&(a+1)错误,如果定义中*p=a,改成*p=a+1,然后&p可以得到指向(a+1)的地址,不过结果是地址,不是数组的元素值。
B.
a++,显然是错误的,因为a是指向数组首元素的const指针,const指针不能进行自加操作
C与D的值都是地址,不是数组元素的值,也不正确。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询