若已定义char s[10];则在下面表达式中不表示s[1]的地址是 。 A:s+1 B:s++ C:&s[0]+1 D:&s[1]
4个回答
展开全部
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+则不是合式的,至少不是算术的一般标记方式。
参考资料来源:百度百科-表达式
展开全部
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
B s++,自加后,s为s[1]地址, 但后置自加是先取值,再自加
所以 这里表达式的值是s[0]地址。 选B
C 和A类似 &s[0]即s
D &s[1] 标准的写法, s[1]的地址。
于是 只有B不是, 选B
更多追问追答
追问
s不是数组名么,不是常量吗,可以加吗
追答
不能自加。。。
我看成指针了。
不能自加那就更简单了, B直接非法。
还是选B
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C)&s[0]+1,先取s[0]的地址,然后加1,相当于s+1;
B)s++,这个在使用时是先用s,表示的是s[0]的地址,完了再s=s+1,所以使用它是表示不了s[1]地址的
B)s++,这个在使用时是先用s,表示的是s[0]的地址,完了再s=s+1,所以使用它是表示不了s[1]地址的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
b错了因为数组名是常量不能自加
Cs[0]的地址再加一不就是s[1]的地址么?&s[0]+1=&s[1]
Cs[0]的地址再加一不就是s[1]的地址么?&s[0]+1=&s[1]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询