求答案!!加解析

来源:百度知道 编辑:UC知道 时间:2024/06/03 08:27:53
设x,y,t都是int型变量,执行下列语句后,y的值
x=y=3;
t=++x||++y;
A 不确定 B 4
C 3 D 1
但答案为C
这里这样说:t=++||++y时,++X的值为非0(真),++y没有执行,y值也没有改变

楼上的讲解的很清楚
但是没注意问题是问y

问题还是回到++y和y++的区别上

++y 是先自加
y++ 是后自加

根据题意
y=4

......
我错了

答案是对的
这就牵扯到||(逻辑运算)和|(位运算)的区别
如果是
t=++x|++y;
那么y=4


t=++x||++y;
首先判断到++x为真,则不再执行
y=3

把语句拆开
y=3;
x=y;
++x;
++y;
t=x||y;
这能看懂了吧?
t=4||4
t=1

先引用上面的:
把语句拆开
y=3;
x=y;
++x;
++y;
t=x||y;
这能看懂了吧?
t=4||4

||是逻辑语句表示或者,如果是假则为0.真就为1,
这里4或者4,为真,所以t=1,这里只有0为假,如果是t=0||0,则t=0
补充:答案是问y哦,哎,就看了一楼的答复下,也没认真看题,认栽~~~

答案应该是错的,应该是t=1

||是逻辑或运算,真值只有0和1
逻辑真为1 逻辑假为0
||只要满足一个表达式为真 整个逻辑值就为真
除非所有的表达式都为假,整个逻辑值才为假
你的问题是t=++||++y时,++X的值为非0(真),++y没有执行,y值也没有改变
但是只要满足++X的值为真,t就为真了,y的值就不重要了