三目運算子對比三個 06運算子大全c語言值得收藏

2021-10-14 15:54:32 字數 2903 閱讀 2604

算術運算子 | 三目運算子 | 關係運算子 | 邏輯運算子 | 位運算子 |逗號運算子

算術運算子在小學的時候已經運用得爐火純青了,主要包含:

+(加)   -(減)  *(乘)  /(除)   %(取餘/取模)
剩下的兩個需要特別注意:

++(自增)   --(自減)
遵循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 + 1i - 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
總結圖

《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,就把...