算術運算子 | 三目運算子 | 關係運算子 | 邏輯運算子 | 位運算子 |逗號運算子
算術運算子在小學的時候已經運用得爐火純青了,主要包含:
+(加) -(減) *(乘) /(除) %(取餘/取模)
剩下的兩個需要特別注意:
++(自增) --(自減)
遵循talk is cheap, show me code的原則,先上**:
int i = 4;i--;printf("i = %d", i); // 輸出 i = 3i++;printf("i = %d", i); // 輸出 i = 4
所以
i++;
的含義是i = i + 1;
i--;
的含義是i = i - 1;
他們與i + 1
和i - 1
的區別是他們有乙個賦值的過程(即,i的值會發生改變)
記住一句話:++在前,先運算,後賦值;++在後,先賦值,後運算。(自減也一樣)
通過**來看看是什麼意思:
int i = 4;int j = i--;// --在後,所以先將i賦值給j,然後i再-1printf("i = %d, j = %d", i, j); // 輸出 i = 3, j = 4int a = 4;int b = --i;// --在前,所以i先-1,然後再將i賦值給jprintf("a = %d, b = %d", a, b); // 輸出 a = 3, b = 3
有三個運算元的運算子,條件運算子中常見的是:
表示式1 ? 表示式2 : 表示式3
意思是如果表示式1成立,就返回表示式2的值,如果不成立就返回表示式3的值。
例:
int a = 1;int b = a > 5 ? 10 : 20;printf("b = %d", b); // 輸出20
練習:
用三目運算子求三個數的最大值。
關係運算子即表達兩個運算元關係的運算子。
>(大於) =(大於等於) <=(小於等於) ==(等於) !=(不等於)
表達真假的運算子。
&&(與) ||(或) !(非)
運用:
int a = 1;printf("!a = %d\n", !a); // 輸出0int b = 3, c = 10;printf("b && c = %d\n", b && c); // 輸出1int d = 3, e = 0;printf("d && e = %d\n", d && e); // 輸出0int f = 3, g = 10;printf("f || g = %d\n", f || g); // 輸出1int h = 3, i = 0;printf("h || i = %d\n", h || i); // 輸出1
從上面的結果可以看出這幾個邏輯運算子的特點:
•!(非):!真 = 假
;!假 = 真
•&&(與):有0則0•||(或):有1則1
其中&&(與)和||(或)需要特別注意一點:短路現象。
•在與運算中,如果前面的表示式為假,則不執行後面的表示式•在或運算中,如果前面的表示式為真,則不執行後面的表示式
int a = 10, b = 20;a < 10 && b++;printf("a = %d, b = %d", a, b); // 輸出a = 10, b = 20// 同理a < 10 || b++;printf("a = %d, b = %d", a, b); // 輸出a = 10, b = 21
位運算子是將資料轉換成二進位制,然後按位元位進行運算的運算子。
|(按位或) &(按位與) ~(按位取反) ^(按位異或)
例:
int a = 5 | 3;/* 表示為: 101 011--------- 111*/printf("a = %d", a); // 輸出 a = 7
>>(右移) <
例:
int a = 3 << 2;/*表示為:3的二進位制表示為:0113 << 2的含義是:將3向左移2位,表示為:01100所以其實3被放大了2^2*/printf("a = %d", a); // 輸出a = 12
根據上面的例子可以得出結論:
當然,位運算還有很多的運算子,如自反賦值運算等等,可以自行了解,這裡並不是重點。
c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後乙個表示式的值。逗號運算子優先順序最低。
例:
int a = 10, b = 20;int x, y;x = (a++, b);y = (x = x + 1, 10);printf("x = %d, y = %d, a = %d, b = %d", x, y, a, b); // 輸出x = 21, y = 10, a = 11, b = 20
總結圖![](https://pic.w3help.cc/e78/b10f608f8ba79786b234468ce1653.jpeg)
《c語言簡明教程》
01-c語言的過去與未來
02-dev c++ 安裝及使用教程
03-c語言的第乙個簡單例項
04-關鍵字與識別符號-c語言
05-資料型別與常量變數-c語言
it入門 感謝關注
三目運算子對比三個 零基礎學C語言 運算子
這是乙個c語言系列文章,如果是初學者的話,建議先行閱讀之前的文章。筆者也會按照章節順序發布。int a 5.0 2 這裡其實涉及到了運算子,即 在程式語言的世界裡並不是只有加減乘除的四則運算,還包含了很多其他運算,參見下圖 舉個簡單的例子 1 2 3 7 而不會計算成9這裡其實就是因為在我們小學數學...
三目運算子
1 概念 根據不同的條件,執行不同的操作 返回不同的值。條件1?值1 或操作1 如果滿足條件 1,就返回值 1或執行操作1 條件2?值2 或操作2 否則,如果滿足條件 2,就返回值 2或執行操作2 總結 表示式 閏年 平年 多種條件 條件 1?值1 條件2?值 值3例子 1 輸入星期四 就輸出 班級...
三目運算子
單目運算子 3 雙目運算子 3 4 三目運算子 格式 表達關係式 表示式1 表示式2 如果條件為true,運算後的結果是表示式1 如果條件為false,運算後的結果是表示式2 比較表示式 結果是乙個boolean型別 執行流程 根據比較表示式的計算返回乙個true或者false。如果是true,就把...