C語言_運算符_分支結構
阿新 • • 發佈:2019-03-17
類型 block 程序 printf 指針運算 位運算符 info == 賦值運算符
C語言運算符:
- 算數運算符:+ ,-,*,/,%
- 關系運算符:>,<,==,!=,>=,<=
- 位運算符:>>,<<,~,&,|,^
- 邏輯運算:&&,||,!
- 條件運算符(三目運算):?:
- 指針運算:&,*
- 賦值運算:=
- 逗號運算:,
- 字節運算:sizeof
- 強制運算符:(類型名)(表達式)
- 結構體成員運算符:->
算數運算符實例:
1 #include <stdio.h> 2 3 void main() 4 { 5 //聲明 6 int num1 = 200; 7 int num2 = 100; 8 9 // 10 printf("%d + %d = %d\n",num1, num2, num1 + num2); // 加法 11 printf("%d - %d = %d\n",num1, num2, num1 - num2); // 減法 12 printf("%d * %d = %d\n",num1, num2, num1 * num2); // 乘法 13 printf("%d / %d = %d\n",num1, num2, num1 / num2); //除法 14 printf("%d %% %d = %d\n",num1, num2, num1 % num2); // 取余 200/100 的值為2,沒有余數,所以值 200%100 值為 0 15 }
位運算:
“位與” 運算,運算符為: &
12 & 8 運算過程:
運算法則:兩個操作數二進制表示,只有對應位都是 1 時,結果才為 1 ,否則為 0
“位或” 運算,運算符為: |
4 | 8 運算過程:
運算法則:兩個操作數二進制表示,只有對應位都是 0 時,結果才為 0 ,否則為 1
“位異或” 運算,運算符為: ^
31 ^ 22 運算過程:
運算法則:兩個操作數二進制表示,對應位相同(同時為0或同時為1),結果為 0,否則為 1
“位取反”運算,運算符為:~
運算法則:操作數二進制表示,將 1 修改為 0 , 0 修改為 1
左移運算: <<
左移運算是將一個二進制操作數向左移動指定的位數,左邊( 高位端 )溢出位將被丟棄,右邊(低位端)的空位將用 0 補充,左移運算相當於乘以二的 n 次冪。
例如 :表達式 48 << 1 (00110000 << 1)的值就是 96 ,即 48 乘以 2 的1次冪(48 * 2) 右移運算:>>
右移運算是將一個二進制操作數向右移動指定的位數,右邊(低位端)溢出位被丟棄,而在填充左邊(高位端)空位時,如果最高位是0(正數),左側空位填入0,如果最高位是1(負數),左側空位填入1。右移位運算,相當於除以 2 的 n 次冪。
實例:
1 #include <stdio.h> 2 3 void main() 4 { 5 printf("12 & 8 = %d\n", 12 & 8); // 12 & 8 = 8 6 printf("4 | 8 = %d\n", 4 | 8); // 4 | 8 = 12 7 printf("31 ^ 22 = %d\n", 31 ^ 22); // 31 ^ 22 = 9 8 printf("~22 = %d\n", ~22); // ~22 = -23 9 10 printf("48 << 1 = %d\n", 48 << 1); // 48 << 1 = 96 11 printf("48 >> 1 = %d\n", 48 >> 1); // 48 >> 1 = 24 12 }
邏輯運算:
&& (與)
(條件1) && (條件2)
只有兩個條件都為真時,結果才為真
|| (或)
(條件1) || (條件2)
兩個條件有一個為真即可成立,結果就為真
! (非)
! (條件)
條件為真時,結果為假
條件為假時,結果為真
算數優先級:(從高到低)
- (),sizeof,++,--
- !
- 算數運算符
- &&
- ||
- = (賦值運算符)
分支結構:
語法:
if(條件1) { 代碼段1 } else if(條件2) { 代碼段2 } else { 代碼段3 }以上結構首先判斷條件1是否成立,如果條件1成立就執行代碼段1,然後結束程序; 如果條件1不成立,則判斷條件2是否成立,如果條件2成立執行代碼段2,然後結束程序; 如果條件2不滿足,,則執行代碼段3,最後結束程序。
實例:
1 #include <stdio.h> 2 3 void main() 4 { 5 // 聲明 6 int score; 7 8 // 9 printf("請輸入你的成績:\n"); 10 scanf("%d", &score); 11 12 if (score >= 80 || score <= 100) 13 { 14 printf("您的成績優秀~~\n"); 15 } 16 else if (score >= 60 || score < 80) 17 { 18 printf("你的成績良好~~\n"); 19 } 20 else 21 { 22 printf("小老弟,你的成績有點危險噢~~~\n"); 23 } 24 }
C語言_運算符_分支結構