C語言操作符小結

  • C語言具有豐富的操作符,算數操作符包括+(加)、-(減)、*(乘)、/(除)和%(取模)。除了%操作符之外,其餘的幾個操作符不僅可以作用於整型值,還可以作用於浮點型值。
  • << 和 >> 操作符分別執行左移位和右移位操作。&、|、和 ^ 操作符分別執行位的與、或、和異或的操作。這幾個操作符都要求其操作數位整型。
  • = 操作符執行賦值操作。而且,C還存在複合操作符,它把賦值符和前面那些操作符結合在一起:
        +=    -=    *=    /=    %=    <<=   >>=    &=    |=    ^=
  • 複合操作符在左右操作數之間執行指定的運算,然後把結果賦值給左操作數。
  • 單目操作符包括!(邏輯非)、~(按位取反)、-(負值)和 + (正值)。++和 --操作符分別作用於增加或減少操作數的值。這兩個操作符都具有前綴和後綴的形式。前綴形式在操作數的值被修改之後才返回這個值。而後綴形式在操作數的值被修改之前就返回這個值。&操作符返回一個指向它的操作數的指針(取地址),而 * 操作符對它的操作數(必須是指針)執行間接訪問操作。sizeof 返回操作數的類型的長度,以字節爲單位。最後,強制類型轉換(cast)用於修改操作數的數據類型。
  • 關係操作符有:
        >    >=    <    <=    !=    ==   
  • 每個操作符根據它們的操作數之間是否存在指定的關係,或者返回真,或者返回假。邏輯操作符用於計算複雜的布爾表達式。對於&&操作符,只有當它的兩個操作數的值都爲真時,它的值纔是真;對於 || 操作符,只有當它的兩個操作數的值都爲假時,它的值纔是假。這兩個操作符會對包含它們的表達式的求值過程施加控制。如果整個表達式的值通過左操作數便可決定時,,那麼右操作數便不再求值。
  • 條件操作符 ...?...:... 接受三個參數,它也會對表達式的求值過程施加控制。如果第一個操作數的值爲真,那麼整個表達式的結果就是第二個表操作數的值,第三個操作數就不會執行。否則,整個表達式的結果就是第三個操作數的值。,而第二個操作數將不會執行。
  • 逗號表達式把兩個或者多個表達式連接在一起,從左到右依次進行求值,整個表達式的值就是最右邊那個子表達式的值。
  • C並不具備顯示的布爾類型,布爾值使用×××表達式來表示的。然而,再表達式中混用布爾值和任意的整型值可能會產生錯誤。要避免這些錯誤,每個變量要麼表示布爾型,要麼表示整型,不可讓它身兼兩職。不要對整型變量進行布爾值測試,反之亦然。
  • 左值是個表達數,它可以出現在賦值符的左邊。它表示計算機內存中的一個位置。右值表示一個值,所以它只能出現在賦值符的右邊。每個左值表達式同時也是個右值,但反過來就不是這樣的。
  • 各個不同類型之間的值不能直接進行運算,除非其中之一的操作數轉換爲另一個操作數的類型。尋常算數轉換決定那個操作數將被轉換。操作符的優先級決定了相鄰的操作符哪個先被執行,如果它們的優先級相等,那麼它們的結合性將決定它們的執行順序。但是,這些並不能完全決定表達式的求值順序。編譯器只要不違背優先級和結合性規定,它可以自由決定複雜表達式的求值順序。表達式的結果如果依賴於求值的順序,那麼它在本質上就是不可移植的,應該避免使用。
  • 1.有符號的右移位操作是不可移植的
  • 2.使用複合賦值福可以使程序更易於維護
  • 3.使用條件操作符替代 if 語句以簡化表達式
  • 4..使用逗號操作符來消除多餘的代碼
  • 5.不要混用整型和布爾型值
  • 發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章