gpt4 book ai didi

c - 一行代码中的多个逻辑运算符

转载 作者:行者123 更新时间:2023-11-30 19:57:55 25 4
gpt4 key购买 nike

我在 Stack Overflow 上搜索这个问题的答案,但没有找到确切的答案。我想出了这段代码。我知道运算符(operator)应该如何工作,但我不明白他们在这种问题上的情况。例如,在第一种情况下,如果我使用 ++y+,zy 怎么仍然是 1 +z

#include <stdio.h>

int main(void) {
int x, y, z;

x = y = z = 1;
++x || ++y && ++z;
printf("x = %d y = %d z = %d\n", x, y, z);

x = y = z = 1;
++x && ++y || ++z;
printf("x = %d y = %d z = %d\n", x, y, z);

x = y = z = 1;
++x && ++y && ++z;
printf("x = %d y = %d z = %d\n", x, y, z);

x = y = z = -1;
++x && ++y || ++z;
printf("x = %d y = %d z = %d\n", x, y, z);

x = y = z = -1;
++x || ++y && ++z;
printf("x = %d y = %d z = %d\n", x, y, z);

x = y = z = -1;
++x && ++y && ++z;
printf("x = %d y = %d z = %d\n", x, y, z);

return 0;
}

我得到的结果:

x = 2 y = 1 z = 1
x = 2 y = 2 z = 1
x = 2 y = 2 z = 2
x = 0 y = -1 z = 0
x = 0 y = 0 z = -1
x = 0 y = -1 z = -1

最佳答案

这是逻辑表达式求值的结果:一旦确定表达式为假(或真),则不再求值其余运算符。例如:

++x || ++y && ++z;

由于 x 是 1,因此表达式将为 true,与 zy 无关,因此 ++y++z 不再执行。

关于c - 一行代码中的多个逻辑运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35382271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com