程式設計菜鳥到大佬之路:C語言程式(五)
阿新 • • 發佈:2018-12-13
第五天學習精要
關係運算符和邏輯表示式
關係運算符
-
六種關係運算符用於數值的比較:相等 ==、不等 !=、大於 >、小於 <、大於等於 >=、小於等於 <=。
-
比較的結果是bool型別,成立則為true,反之為false。
-
bool型別變數只有兩種取值,true或false,false等價於0, true等價於非0整型值。
# include <iostream> using namespace std; int main() { int n1 = 4, n2 = 5, n3; n3 = (n1 > n2); // n3的值變為0 cout << n3 << ","; // 輸出0, n3 = (n1 < n2); // n3的值變為1 cout << n3 << ","; // 輸出1, n3 = (n1 == 4); // n3的值變為非0值 cout << n3 << ","; // 輸出1, n3 = (n1 != 4); // n3的值變為0 cout << n3 << ","; // 輸出0, n3 = (n1 == 5); // n3的值變為0 cout << n3 ; // 輸出0 return 0; }
邏輯運算子和邏輯表示式
-
邏輯運算子用於表示式的邏輯操作,有 &&,||,! 三種,操作的結果是true或false。
-
與 &&:exp1 && exp2 當且僅當exp1和exp2的值都為真(或非0)時,結果為true。
-
或 ||:exp1 || exp2 當且僅當exp1和exp2的值都為假(或0)時,結果為false。
-
非 !:! exp exp值為真(或非0),結果為false,exp值為false(0),結果為true。
-
邏輯表示式是短路計算的,即對邏輯表示式的計算,在整個表示式的值已經能夠斷定的時候即會停止。
-
exp1 && exp2:如果已經算出表示式exp1為假,那麼整個表示式的值肯定為假,於是表示式exp2就不需要再計算。
-
exp1 || exp2:如果已經算出exp1為真,那麼整個表示式必定為真,於是exp2也不必計算。
# include <iostream> using namespace std; int main() { int a = 0, b = 1; bool n = (a ++) && (b ++); // b++不被計算 cout << n << endl; // 輸出0 cout << a << "," << b << endl; //輸出1,1 n = a++ && b++; // a++和b++都要計算 cout << a << "," << b << endl; //輸出2,2 n = a++ || b++; // b++不被計算 cout << a << "," << b << endl; //輸出 3,2 return 0; }
-
其他運算子及運算子優先順序
強制型別轉換運算子
- 型別名本身就是一個運算子,叫“強制型別轉換運算子”,用於將運算元轉換為指定型別。
部分運算子的優先順序
- 可以用()改變運算順序,勤用括號以避免優先順序錯誤。