c语言:int x,y,z,w; x=y=z=1; w=++x||++y&&++z; 经过计算后w,x,y,z的值分别为多少,为什么?

2024-11-29 01:48:23
推荐回答(3个)
回答(1):

#include
using namespace std;
int main()
{
int x,y,z,w;
x=y=z=1; //x=1,y=1,z=1;
w=++x||++y&&++z;//x=2,因为++x之后x=2;++x整个表达式也为2>0,所以||后的运算就停止了w= 1;y=1;z=1;
///或运算遇到大于等于0就返回1.不再向后计算。

cout<<"w="< cout<<"x="< cout<<"y="< cout<<"z="<
return 0;
}
结果:w=1.x=2.y=1,z=1

回答(2):

x=y=z=1
++x,所以x=2,又因为||运算符的规则是左边为真,右边就不需要算了,所以y=1不变
++z,所以z=2
所以得x=2,y=1,z=2

回答(3):

x=1 y=1 z=1 w=3
前方提 x=y=z=1
w=++x||++y&&++z
w=x+y+z int
即为x=1 y=1&& z=1 w=3
懂了?