gpt4 book ai didi

c - 逻辑运算符、表达式和条件语句( bool 值)

转载 作者:太空宇宙 更新时间:2023-11-04 02:23:06 24 4
gpt4 key购买 nike

因此,我将复习 C 编程中的一些内容,这些我之前已经复习过。

但是,我很难记忆起一些再次变得相关的事情。我开始编写更复杂的程序,这些程序使用越来越多的条件语句,但我无法完全理解它们。

总而言之,我知道在 C 语言中,逻辑运算符以真或假两种方式之一确定条件的值。这实际上等于 1 或 0。

以下面的表达式为例:(如果 x4y5z is 3 )

x > z && y > z

插入值...

4 > 3 && 5 > 3

所以就 bool 逻辑而言...我知道这句话的值(value)实际上是: 1 && 1这是 1(真)

或者...(与上面声明的变量值相同)

z >= x && x <= y

这个语句的值其实是: 0 && 1这是 0(由于逻辑 && 而为假)

这就是我需要帮助的地方...

我不记得如何用几种不同的表达形式将事物等同起来,例如:新值:x = 3 , y = 0 , z = -3 )

x && y || z

这样的东西的 bool 值是多少?没有像 < 这样的运算符, > , == , 和 !=

会不会是...

x && y || z
1 0 1

哪个是 1 表示真?因为 x && y 变成了假(因为任何带有 && 的假都是假的)但是它后面跟着 || (或)如果存在,则哪个为真?

我的问题有意义吗?

或者看起来像这样的表达式呢...(如果 x = 5 , y = 1 )

!x + !!y

这里的 bool 值是多少?是吗

!(5) + !(!)(1)
0 1 which would be 1 true?

我要加零和一吗?可能不是。

我可能想多了。

最佳答案

我们知道 ( cppreference conversion ):

  • 零值计算为 false。
  • 非零值计算为真。任何非零值。 -3 为真。 1 为真。 INT_MAX 为真。

我们也知道 operator precedence :

  • && 的优先级高于 ||
  • 这意味着,首先评估 &&,然后评估 ||

我们还知道C中的truefalse只是定义在stdbool.h中的10的宏, 所以他们有 int 类型。 C 没有“真正的” bool 值,只有 bool _Bool 类型。逻辑运算符 && ||! 的计算结果为 int(!) 类型值 10,见 cppreference

所以:

3 && 0 || -3

等于:

(true && false) || true

计算结果为 1

!5 + !!1

! 有更高的优先级。

如果为零,! 运算符的值为 1(真)。在非零表达式的情况下,! 运算符的值为 0(假)。

是这样的:

(! true) + (! (! true) )

false + true

0 + 1

1

关于c - 逻辑运算符、表达式和条件语句( bool 值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55054831/

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