邏輯或運算符:||
語法
logical-or-expression || logical-and-expression
備注
如果任一操作數或兩個操作數為 true,則邏輯“或”運算符 (||) 返回布爾值 true;否則返回 false。操作數在計算之前隱式轉換為類型 bool,結果的類型為 bool。邏輯“或”具有從左向右的關聯性。
邏輯“或”運算符的操作數不需要是同一類型,但是它們必須是整型或指針類型。操作數通常為關系或相等表達式。
第一個操作數將完全計算,并且在繼續計算邏輯“或”表達式之前將完成所有副作用。
僅當第一個操作數的計算結果為 false (0) 時計算第二個操作數。在邏輯“或”表達式為 true 時,這將消除對第二個操作數的不必要的計算。
printf( "%d" , (x == w || x == y || x == z) );
在上面的示例中,如果 x 與 w、y 或 z 相等,則 printf 函數的第二個參數的計算結果將為 true,并打印值 1。否則,它的計算結果將為 false,并打印值 0。只要其中一個條件的計算結果為 true,計算便會停止。
|| 的運算符關鍵字
or 運算符是 || 的等效文本。在您的程序中有兩種訪問 or 運算符的方法:包括頭文件 iso646.h 或使用 /Za(禁用語言擴展)編譯器選項進行編譯。
// expre_Logical_OR_Operator.cpp// compile with: /EHsc// Demonstrate logical OR#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;}
邏輯與運算符:&&
語法
expression && expression
備注
如果操作數為 true,則邏輯“與”運算符 (&&) 返回布爾值 true,否則返回 false。操作數在計算之前隱式轉換為類型 bool,結果的類型為 bool。邏輯“與”具有從左到右的關聯性。
邏輯“與”運算符的操作數不需要具有相同的類型,但它們必須是整數或指針類型。操作數通常為關系或相等表達式。
第一個操作數將完全計算,在繼續對邏輯“與”表達式進行計算前將完成所有副作用。
如果第一個操作數的計算結果為 true(非零),則計算第二個操作數。當邏輯“與”表達式為 false 時,這種計算方式可消除不必要的對第二個操作數的計算??梢允褂么硕搪酚嬎惴乐?null 指針取消引用,如以下示例所示:
char *pch = 0;...(pch) && (*pch = 'a');
如果 pch 為 null (0),則從不計算表達式的右側。因此,無法通過 null 指針進行賦值。
&& 的運算符關鍵字
and 運算符是 && 的文本等效項。您的程序中有兩種訪問 and 運算符的方法:包含標頭文件 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;}
邏輯非運算符:!
語法
! cast-expression
備注
邏輯求反運算符 (!) 反轉其操作數的含義。操作數必須是算法或指針類型(或計算結果為算法或指針類型的表達式)。操作數將隱式轉換為類型 bool。如果已轉換的操作數是 false,則結果是 true;如果已轉換的操作數是 true,則結果是 false。結果為 bool 類型。
對于表達式 e,一元運算符表達式 !e 與該表達式 (e == 0) 等效,涉及重載運算符的情況除外。
! 的運算符關鍵字
not 運算符是與 ! 等效文本。在您的程序中,可通過兩種方法訪問 not 運算符:包含頭文件 iso646.h,或使用 /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;}