执行以下语句后,y的值为()
int x,y,z;
x=y=z=0;
++x||++y&&++z;
A.0 B.1 C.2 D.不确定值
答案是 a!~
在"&&"和"||"混合式中,"&&"的优先级大于"||"的优先级,++x||++y&&++z; 可以理解成 ++x||(++y&&++z);
执行顺序:先计算运算式第一个"||"号前面的算式, 如果值为真, "||"后面的算式将不予理睬 如果值为假, 按照相同原则继续进行"||"后面的运算
不好意思忘说答案了---A
那么这样++x||(++y&&++z); y不是也要+1
我晕 我在TURBO运行过答案是1,怎么会是A?不懂
y 和z都不变类似的 ++x || ++y当++X为真时"短路",忽略后面的一切....
你太有才了!一语点醒谢了!