C++ “你说什么?”&书信电报;数量>;在C/C++;方法
什么是C++ “你说什么?”&书信电报;数量>;在C/C++;方法,c++,c,operators,logical-operators,C++,C,Operators,Logical Operators,什么是在c中表示。例如-2或!3 cout << !-2; Output: 0 cout << !3; Output: 0 cout它被称为“逻辑非”。如果操作数为非零,则表达式的计算结果为false;如果操作数为零,则表达式的计算结果为true。将逻辑not应用于负零也会返回true。一元运算符是逻辑协商(即NOT)运算符。当操作数为真时,结果为假;当操作数为假时,结果为真。整数操作数隐式转换为布尔值。零为假,所有其他数字为真。是逻辑求反运算符。来自C标准(6.
代码>在c中表示。例如-2
或!3
cout << !-2;
Output:
0
cout << !3;
Output:
0
cout它被称为“逻辑非”。如果操作数为非零,则表达式的计算结果为false;如果操作数为零,则表达式的计算结果为true。将逻辑not应用于负零也会返回true。一元运算符
是逻辑协商(即NOT)运算符。当操作数为真时,结果为假;当操作数为假时,结果为真。整数操作数隐式转换为布尔值。零为假,所有其他数字为真。
是逻辑求反运算符。来自C标准(6.5.3.3一元算术运算符)
5逻辑求反运算符的结果!如果
其操作数比较不等于0,如果其操作数的值
比较值等于0。结果的类型为int。表达式为!E是
相当于(0==E)
<>和从C++标准(83.1元运算符)
9逻辑求反运算符的操作数!这是语境
转换为bool(第7条);如果已转换
操作数为false,否则为false。结果的类型是bool
例如,这个表达式
cout << !-2;
在C语言中,您可以包含标题
,并使用宏not
作为操作员的替代记录代码>
还有一个把戏。例如,如果您希望从C函数返回一个整数表达式,将其精确转换为1或0,您可以编写例如
return !!expression;
也就是说,如果表达式
不等于0
,则第一次应用运算符
将表达式转换为0
,第二个将应用运算符代码>将结果表达式转换为1
就好像要写一样
return expression == 0 ? 0 : 1;
但是更简洁。请记住,零值是false
,而所有其他值都是true
(尽管您无法进行相等性测试)。对于该语言的每个基本概念,我们都会有一个问题吗?例如,c中的-
是什么意思。@WeatherVane“虽然你不能进行平等测试”,为什么不呢?您指的是底层位模式吗?平等与对等?还是别的?@LightnessRaceswithMonica我的意思是3==true
是false
,尽管逻辑表达式中的3
是true
。做了一个小的编辑以澄清这是逻辑否定。很好地从标准中快速提取文本!
return !!expression;
return expression == 0 ? 0 : 1;