c語言操作符小結

  • 算數操作符(+,-,,/,%)
    +,-,
    ,正常運算就好,但"/"和"%"較爲特殊需要注意!
    "/":
    1)當該符號兩端數據類型都爲int時,輸出類型爲int 。若符號兩端數據類型不同時,則按精度小的類型進行計算。精度大的數被隱式類型轉換(編譯器自動轉換)爲精度小的類型。
    2)當除數爲一個常數0時,編譯器彙報編譯錯誤。當除數爲一個一個變量,變量的值爲0時,編譯通過但運行時會錯。
    "%":
    1)該符號只針對int 整型有效。
    2)當符號右端爲常數0或變量值爲0時,情況與"/"相同。
  • 移位操作符(<<,>>)
    ps:不要對負數進行移位操作,這是未定義行爲!
    "<<"左移操作符:
    1)按二進制移位;
    2)左移n位相當於十進制的*2的n次方;
    3)左邊拋棄,右邊補0;
    4)左移後原數值在沒有被賦值的情況下是不變的;

    #include<stdio.h>
    #include<stdlib.h>
    int main() {
    int num = 10;
    printf("%d\n",num<<1 ); 
    printf("%d\n", num);
    printf("%d\n", num=num<<1);
    system("pause");
    return 0;
    }

    結果爲:
    c語言操作符小結
    ">>"右移操作符:
    1)按二進制移位;
    2)右移n位相當於十進制的 / 2的n次方;
    3)邏輯移位:左邊補0,右邊拋棄
    算數移位:左邊補符號位,右邊拋棄
    4)右移後原數值在沒有被賦值的情況下是不變的;(情況同上,不再做過多贅述)

  • 位操作符(&,|,^,~)
    ps:按二進制位操作,操作數必須爲整數
    "&":
    全1爲1,否則爲0
    "|":
    全0爲0,否則爲1
    "^":
    相同爲0,相異爲1
    "~":
    0變1,1變0
  • 賦值操作符( = )
    修改變量的值,可以連續連續賦值(例:a=x=y+1),但強烈不建議這麼寫,可讀性差。
    ps:此處補充一點:賦值與初始化的區別
    賦值:修改值
    初始化:申請內存空間,放值到內存中
  • 複合操作符(+= ,-= ,*= ,/= ,%= ,>>= ,<<= ,&= ,|= ,^= )
    複合運算符與其他運算符功能一樣,但可以使代碼更簡潔

    int x=10;
    x=x+10;
    x+=10;//複合賦值,效果與上式相同
  • 單目操作符(!,- ,+ ,& ,sizeof ,~,--,++,* ,(類型))
    "!"邏輯反操作
    "-"負值
    "+"正值
    "&"取地址
    "sizeof"操作數的類型長度(以字節爲單位):
    編譯過程中求值,運行時才申請內存
    "~"對一個數二進制按位取反
    "--"前置,後置 --
    "++"前置,後置++:
    前置後置的區別:
    a)不取表達式的值,等價
    b)取表達式的值:
    前置,返回自增(自減)後的值;
    後置,返回自增(自減)前的值
    " * "解引用操作符
    "(類型)"強制類型轉換:
    此處會發生“截斷”現象,即把一個佔字節數多的變量賦值給一個佔字節數少的變量,會把高位截斷。把一個佔字節少的變量賦值給一個佔字節數多的變量,高位會進行補位(補符號位)

  • 關係操作符(> , >= ,< ,<= ,!= ,== )
    在前面已經介紹了這些操作符,在此不再贅述,注意 = 和 == 書寫時不要出錯即可。
  • 邏輯操作符(&& ,|| )
    "&&":邏輯與
    &&相當於and
    " || ":邏輯或
    || 相當於 or
    “短路求值”:
    對於&&,若左側表達式值爲假,那麼右側不再求值,整個表達式結果爲假
    對於 || ,若左側表達式值爲真,那麼右側不再求值,整個表達式結果爲真
  • 條件操作符(表達式1 ?表達式2 :表達式3)
    如果表達式1結果爲真,則返回表達式2的值,否則返回表達式3的值
    ps:優先級最低!!!
  • 逗號表達式(表達式1,表達式2,表達式3)
    整個表達式的結果爲最後一個表達式的結果。
  • 下標引用操作符( [ ] )
    數組名+索引值,調用數組的值
  • 隱式類型轉換
    類似於char/short這樣的類型,參與算數運算的時候會觸發整型提升,即隱式轉換爲int 型再參與運算!
  • 發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章