执行下列语句后,x的值是(),y的值是()

来源:百度知道 编辑:UC知道 时间:2024/05/18 10:11:31
执行下列语句后,x的值是(),y的值是()
int x,y;
x=y=1;++x||++y;
(a)不确定(b)0(c)(d)2
&&也是这样吗?

x=2
y=1

这里注意||表达式++x||++y;
||的运算规则是当第一个表达式值为真时不计算第二个表达式的值
所以这里++y没有执行

&&运算规则是当第一个表达式值为假时,不计算第二个表达式的值

这里很好理解,对于||运算,只要第一个表达式为真,则不管第二个表达式值为什么,整个||的结果都是1,所以没有必要计算第二个表达式了;
同理,对于&&运算,只要第一个表达式为假,则不管第二个表达式值为什么,整个||的结果都是0,所以没有必要计算第二个表达式了;

楼上正确,解释也很正确

不是
如果是&&就应该是后面的也执行
结果就是x = 2
y= 2;
如果是&&且开始x = 0, y = 1结果就是
x= 0;y=1

wlin328 回答的很好