C語言操做符小結

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