Оператор логического отрицания: !

Синтаксис

!cast-expression

Замечания

Оператор логического отрицания (!) изменяет значение операнда. Операнд должен иметь арифметический тип или тип указателя (либо выражение, результатом которого является арифметический тип или тип указателя). Операнд неявно преобразуется в тип bool. Результатом является то, если преобразованный операнд имеет значение; результатом true является false преобразование операндаfalsetrue. Результат имеет тип bool.

Для выражения eунарное выражение !e эквивалентно выражению (e == 0), за исключением того, где задействованы перегруженные операторы.

Оператор ключевое слово для !

C++ указывает not в качестве альтернативной орфографии для !. В C альтернативная орфография предоставляется в виде макроса в заголовке <iso646.h> . В C++альтернативная орфография является ключевое слово; <использование iso646.h> или эквивалентное <C++ ciso646> не рекомендуется. В Microsoft C++ /permissive- параметр или /Za компилятор требуется для включения альтернативной орфографии.

Пример

// 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;
}

См. также

Выражения с унарными операторами
Встроенные операторы C++, приоритет и ассоциативность
Унарные арифметические операторы