请解释这个的输出
please explain the output of this
我正在尝试 c 编程,我写了一小段代码,但我无法理解这个
#include<stdio.h>
int main()
{
int x,y,z,k;
x=y=z=k=1;
z=x++||y++&&k++;
printf("%d %d %d %d\n",x,y,z,k);
}
我期望输出为 2 1 1 2
因为 && 的优先级高于 ||
但输出是 2 1 1 1
请解释。
C使用short-circuit evaluation,所以当x++
求值为true
时,其余表达式不求值,不产生自增。
我正在尝试 c 编程,我写了一小段代码,但我无法理解这个
#include<stdio.h>
int main()
{
int x,y,z,k;
x=y=z=k=1;
z=x++||y++&&k++;
printf("%d %d %d %d\n",x,y,z,k);
}
我期望输出为 2 1 1 2 因为 && 的优先级高于 || 但输出是 2 1 1 1 请解释。
C使用short-circuit evaluation,所以当x++
求值为true
时,其余表达式不求值,不产生自增。