C++編程中邏輯運算符基本用法整理

若是任一操做數或兩個操做數爲 true,則邏輯「或」運算符 (||) 返回布爾值 true;不然返回 false。操做數在計算以前隱式轉換爲類型 bool,結果的類型爲 bool。邏輯「或」具備從左向右的關聯性。
邏輯「或」運算符的操做數不須要是同一類型,可是它們必須是整型或指針類型。操做數一般爲關係或相等表達式。
第一個操做數將徹底計算,而且在繼續計算邏輯「或」表達式以前將完成全部反作用。
僅當第一個操做數的計算結果爲 false (0) 時計算第二個操做數。在邏輯「或」表達式爲 true 時,這將消除對第二個操做數的沒必要要的計算。html

 

複製代碼 代碼以下:ios

printf( "%d" , (x == w || x == y || x == z) );
express

 


在上面的示例中,若是 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;
}spa

 

邏輯與運算符:&&
語法.net

expression
&&
expression指針

備註
若是操做數爲 true,則邏輯「與」運算符 (&&) 返回布爾值 true,不然返回 false。操做數在計算以前隱式轉換爲類型 bool,結果的類型爲 bool。邏輯「與」具備從左到右的關聯性。
邏輯「與」運算符的操做數不須要具備相同的類型,但它們必須是整數或指針類型。操做數一般爲關係或相等表達式。
第一個操做數將徹底計算,在繼續對邏輯「與」表達式進行計算前將完成全部反作用。
若是第一個操做數的計算結果爲 true(非零),則計算第二個操做數。當邏輯「與」表達式爲 false 時,這種計算方式可消除沒必要要的對第二個操做數的計算。可使用此短路計算防止 null 指針取消引用,如如下示例所示:htm

char *pch = 0;
...
(pch) && (*pch = 'a');
若是 pch 爲 null (0),則從不計算表達式的右側。所以,沒法經過 null 指針進行賦值。
&& 的運算符關鍵字
and 運算符是 && 的文本等效項。您的程序中有兩種訪問 and 運算符的方法:包含標頭文件 iso646.h,或使用 /Za(禁用語言擴展)編譯器選項進行編譯。get

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

相關文章
相關標籤/搜索