Share via


論理演算子:、 &&

expression && expression

解説

両方のオペランドがの場合 true 返しFalse を返します。それ以外の場合は論理 AND 演算子 () はブール型を true。オペランドは暗黙的に評価する前に bool を入力するに変換され結果は型 bool です。論理的左から右の結合規則が設定されます。

論理 AND 演算子のオペランドが同じ型である必要はありません。整数型またはポインター型でなければなりません。オペランドは関係または等価式です。

1 番目のオペランドは完全に評価されすべての副作用は論理的な評価を続行する前に完了して式です。

2 番目のオペランドが 1 番目のオペランドが true と評価された場合にのみ評価されます (以外)。この評価は論理 AND 式が false の場合2 番目のオペランドの不要な評価を削除します。次の例に示すように逆参照する null ポインターにするにはこのショートサーキット評価を使用できます :

char *pch = 0;
...
(pch) && (*pch = 'a');

pch が null (0) の場合は式の右側は評価されません。したがってnull ポインターによる割り当ては不可能です。

演算子のキーワードの

および の演算子はテキストと同じです 。プログラムの および の演算子の表示方法は 2 種類あります : ヘッダー ファイル iso646.h を含めるか無効 (/Za の言語拡張機能) コンパイラ オプションが使用されます。

使用例

// expre_Logical_AND_Operator.cpp
// compile with: /EHsc
// Demonstrate logical AND
#include <iostream>

using namespace std;

int main() {
   int a = 5, b = 10, c = 15;
   cout  << boolalpha
         << "The true expression "
         << "a < b && b < c yields "
         << (a < b && b < c) << endl
         << "The false expression "
         << "a > b && b < c yields "
         << (a > b && b < c) << endl;
}

参照

関連項目

C++ の論理演算子

C++ の演算子

演算子の優先順位と結合規則

C の論理演算子