急求一个c语言的题目

来源:百度知道 编辑:UC知道 时间:2024/05/16 18:45:28
#include <stdio.h>
main()
{
int x,y,z;
x=y=z=0;
++x||++y&&++z;
printf("%d,%d,%d",x,y,z);
}
这道题算出的xyz的值分别是多少?为什么?
不明白,什么叫短路求值

楼上给错了吧.
正确答案是1 0 0

逻辑运算中的或运算---||,求解原理:当左为真,无论右侧是否为真,结果一律为真,所以,通过++x即可判定表达式++x||++y&&++z; 为真,略去后续运算,所以该题目只加了x,y和z与运算无关,所以不做计算.

这就是短路求值.

0 1 1
原因是短路求值