Logical negation operator: !
Syntax
!
cast-expression
Remarks
The logical negation operator (!
) reverses the meaning of its operand. The operand must be of arithmetic or pointer type (or an expression that evaluates to arithmetic or pointer type). The operand is implicitly converted to type bool
. The result is true
if the converted operand is false
; the result is false
if the converted operand is true
. The result is of type bool
.
For an expression e
, the unary expression !e
is equivalent to the expression (e == 0)
, except where overloaded operators are involved.
Operator keyword for !
C++ specifies not
as an alternative spelling for !
. In C, the alternative spelling is provided as a macro in the <iso646.h> header. In C++, the alternative spelling is a keyword; use of <iso646.h> or the C++ equivalent <ciso646> is deprecated. In Microsoft C++, the /permissive-
or /Za
compiler option is required to enable the alternative spelling.
Example
// expre_Logical_NOT_Operator.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main() {
int i = 0;
if (!i)
cout << "i is zero" << endl;
}
See also
Expressions with unary operators
C++ built-in operators, precedence, and associativity
Unary arithmetic operators
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for