所以我在C编程中经历了一些事情,我之前已经过去了。
但是,我很难回忆起一些再次变得相关的事情。我开始编写更复杂的程序,这些程序正在使用越来越多的条件语句,而且我不能完全理解它们。
回顾一下,我知道在C逻辑运算符中,以两种方式之一确定条件的值,true或false。这实际上等于1或0。
以下面的表达式为例:(x
是4
,qazxsw poi是qazxsw poi,qazxsw poi)
y
插入价值......
5
所以在布尔逻辑方面...我知道这个语句的值实际上是:z is 3
是1(真)
或...(具有与上面声明的相同的变量值)
x > z && y > z
这个语句的值实际上是:4 > 3 && 5 > 3
为0(由于逻辑&&而为false)
所以这就是我需要帮助的地方......
我不记得如何将事物等同于几种不同形式的表达式:新值:qazxsw poi,qazxsw poi,qazxsw poi)
1 && 1
这样的布尔值是多少?没有像z >= x && x <= y
,0 && 1
,x = 3
和y = 0
这样的运营商?
可不可能是...
z = -3
哪一个是真的?因为x && y变为false(因为任何带有&&的假是假的)但是接着是x && y || z
(OR),如果有真的那么它是真的吗?
我的问题有意义吗?
或者看起来像这样的表达式......(如果<
,>
)
==
这里的布尔值是多少?是吗
!=
我添加零和一个?可能不是。
我可能会过度思考这个问题。
我们知道(x && y || z
1 0 1
):
||
是真的。 x = 5
是真的。 y = 1
是真的。我们也知道!x + !!y
:
我们也知道C中的!(5) + !(!)(1)
0 1 which would be 1 true?
和cppreference conversion只是在-3
中定义的1
和INT_MAX
的宏,因此它们具有operator precedence类型。 C没有“实际”布尔值,只有布尔值true
类型。逻辑运算符false
1
和0
仅评估stdbool.h
(!)类型值int
或_Bool
,请参阅&&
。
所以:
||
等于:
!
评估为int
。
1
0
具有更高的优先权。
在零的情况下,cppreference运算符的值是3 && 0 || -3
(true)。在非零表达式的情况下,(true && false) || true
运算符的值是1
(false)。
所以这是:
!5 + !!1