若已定义char s[10];则在下面表达式中不表示s[1]的地址是 。 A:s+1 B:s++ C:&s[0]+1 D:&s[1]

为什么s+1可以,而s++不可以... 为什么s+1可以,而s++不可以 展开
 我来答
帐号已注销
2020-12-17 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:159万
展开全部

b错了因为数组名是常量不能自加。

Cs[0]的地址再加一就是s[1]的地址,&s[0]+1=&s[1]‘’

定义了char s[10]的话,s就是数组名。

C和C++中规定了数组名为常量,不允许修改它的值。

而且,就shu算让指针char *p=s;

p++因为是++在变量的后面,表示先取变量的值,再加1。所以p++也只是先取s[0]的地址来用,然后再指向s[1]。

扩展资料:

一个表达式的赋值和算符的定义以及数值的定义域是有关联的。

两个表达式若被说是等值的,表示对于自由变量任意的定值,两个表达式都会有相同的输出,即它们代表同一个函数。

一个表达式必须是合式的。亦即,其每个算符都必须有正确的输入数量,在正确的地方。如表达式2+3便是合式的;而表达式*2+则不是合式的,至少不是算术的一般标记方式。

参考资料来源:百度百科-表达式

风若远去何人留
2017-01-02 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450106
专业C/C++软件开发

向TA提问 私信TA
展开全部
A s为s[0]地址 ,s+1即s[1]地址。
B s++,自加后,s为s[1]地址, 但后置自加是先取值,再自加
所以 这里表达式的值是s[0]地址。 选B
C 和A类似 &s[0]即s
D &s[1] 标准的写法, s[1]的地址。

于是 只有B不是, 选B
更多追问追答
追问
s不是数组名么,不是常量吗,可以加吗
追答
不能自加。。。 
我看成指针了。
不能自加那就更简单了, B直接非法。
还是选B
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
锺离茹云茅晔
2019-04-09 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:668万
展开全部
C)&s[0]+1,先取s[0]的地址,然后加1,相当于s+1;
B)s++,这个在使用时是先用s,表示的是s[0]的地址,完了再s=s+1,所以使用它是表示不了s[1]地址的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
养雅韵翠风
2019-10-22 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:33%
帮助的人:564万
展开全部
b错了因为数组名是常量不能自加
Cs[0]的地址再加一不就是s[1]的地址么?&s[0]+1=&s[1]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式