邏輯 AND 運算子: &&

語法

logical-and-expression
equality-expression
logical-and-expression && equality-expression

備註

如果兩個運算元都是 true ,則邏輯 AND 運算子 ( &&true 會傳回 ,否則會傳 false 回 。 運算元會在評估之前隱含轉換成類型 bool ,而結果的類型 bool 為 。 邏輯 AND 具有由左至右的順序關聯性。

邏輯 AND 運算子的運算元不需要有相同的類型,但是它們必須有布林值、整數或指標類型。 運算元通常是關聯或相等運算式。

第一個運算元會完全評估,而且所有副作用都會在邏輯 AND 運算式的評估繼續進行之前完成。

只有當第一個運算元評估為 true (非零) 時,才會評估第二個運算元。 當邏輯 AND 運算式為 false 時,此評估可排除第二個運算元的不必要評估。 您可以使用這個最少運算評估來預防 null 指標取值,如下列範例所示:

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

如果 pch 是 null (0),則永遠不會評估運算式的右邊。 此短期評估讓指派無法透過 Null 指標。

的運算子關鍵字 &&

C++ 會 and 指定 做為 的 && 替代拼字。 在 C 中,替代拼字會以 iso646.h > 標頭中的 < 宏的形式提供。 在 C++ 中,替代拼字是關鍵字; <iso646.h > 或 C++ 對等 < ciso646 > 的使用已被取代。 在 Microsoft C++ 中 /permissive- ,需要 或 /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 邏輯運算子