1. 程式人生 > >C語言_運算符_分支結構

C語言_運算符_分支結構

類型 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)

  兩個條件有一個為真即可成立,結果就為真

! (非)

  ! (條件)

  條件為真時,結果為假

  條件為假時,結果為真

算數優先級:(從高到低)

  1. (),sizeof,++,--
  2. !
  3. 算數運算符
  4. &&
  5. ||
  6. = (賦值運算符)

分支結構:

語法:

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語言_運算符_分支結構