Operador de negação lógica: !

Sintaxe

!cast-expression

Comentários

O operador de negação lógico (!) inverte o significado do respectivo operando. O operando deve ser do tipo aritmético ou ponteiro (ou uma expressão que é avaliada para o tipo aritmético ou ponteiro). O operando é convertido implicitamente no tipo bool. O resultado será true se o operando convertido for false; o resultado será false se o operando convertido for true. O resultado é do tipo bool.

Para uma expressão e, a expressão unária !e é equivalente à expressão (e == 0), exceto quando operadores sobrecarregados estão envolvidos.

Palavra-chave do operador para !

O C++ especifica not como uma ortografia alternativa para !. Em C, a ortografia alternativa é fornecida como uma macro no cabeçalho <iso646.h>. No C++, a ortografia alternativa é uma palavra-chave; o uso de <iso646.h> ou do equivalente do C++ <ciso646> foi preterido. No Microsoft C++, a opção do compilador /permissive- ou /Za é necessária para habilitar a ortografia alternativa.

Exemplo

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

Confira também

Expressões com operadores unários
Operadores internos, precedência e associatividade no C++
Operadores aritméticos unários