c语言逻辑运算 int x,y,z; x=y=z=0;++x||++y||++z;为什么结果等于 x=1 y=0 z=0?

2025-01-01 00:53:34
推荐回答(4个)
回答1:

||运算符只要第一项为真之后的几项都不会计算,所以++y,++z都没有执行

回答2:

3 个都是或运算
第一步xyz都等于0
或运算只要算第一个是0还是1
如果是1的话就不需要往后算了,后面的就等于原值,所以++x==1 所以后面的y++和z++电脑都不会执行。

回答3:

或运算只要第一个条件满足(结果为1),就不会再验证||后面的条件了,和数学里的或是一样的,只要表达式中有一个为1,结果就是正确的,系统不会再进行后面的计算了。

回答4:

++x||++y||++z,比较到++x的时候全式已经为真,之后的条件编译器不会去检测的,所以++y++z都不会执行