論理否定演算子: !

構文

!cast-expression

解説

論理否定演算子 (!) は、オペランドの意味を反転させます。 オペランドは、数値型またはポインター型 (または、数値型またはポインター型に評価される式) である必要があります。 オペランドは bool 型に暗黙的に変換されます。 変換されたオペランドが false の場合、結果は true となり、変換されたオペランドが true の場合は、結果が false になります。 結果は 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++ の組み込み演算子、優先順位、結合規則
単項算術演算子