c語言 操作符以及要注意的事項

2021-08-18 04:07:58 字數 1605 閱讀 3626

首先對於操作符如圖所示,

c語言運算子優先順序表(與上至下,優先順序依次遞減)

優先順序:

優先順序最高者其實不是真正意義上的運算子,包括:陣列下標、函式呼叫、操作符各成員選擇操作符。他們都是自左向右結合,因此a.b.c的含義是(a.b).c,而不是a.(b.c)。

單目運算子的優先順序僅次於前訴運算子。型別轉換也是單目運算子。

優先順序比單目運算子低的就是雙目運算子。在雙目運算子中,算術運算子的優先順序最高,移位運算子次之,關係運算子再次之,接著是邏輯運算子,賦值運算子,最後是條件運算子(三目運算子)。

我們需要注意的最重要的兩點是:

1.任何乙個邏輯運算子的優先順序低於任何乙個關係運算子

2.移位運算子的優先順序比算術運算子要低,但是比關係運算子要高

在所有的運算子中,逗號運算子的優先順序最低。

操作符的用法:

單目操作符:

!       邏輯反操作

-         負值

+        正值

&       取位址

~       對乙個數的二進位制按位取反

--      前置、後置--

++    前置、後置++

*       間接訪問操作符(解引用操作符)

(型別)       強制型別轉換

算術操作符:(+    -     *    /     %)

1.除了%操作符(只適用於整數)之外,其他幾個操作符可以用作與整數與浮點數

2.對於/操作符如果兩個運算元都為整數,執行整數除法,而只要有浮點數執行的就是浮點數除法

3.%操作符的兩個運算元必須為整數。返回的是整除之後的餘數

移位操作符:(<>)

<

移位規則:左邊拋棄,右邊補0

>>(右移操作符)(一般是算術移位)

移位規則:

右移運算子分兩種:

1.邏輯移位

左邊用0填充,右邊丟棄

2.算術移位

左邊用原該值的符號位填充,右邊丟棄

警告!:

對於移位運算子,不要移動負數字,這個是標準未定義的

位操作符(&    |     ^)

&      //按位與     (同為1才是1)

|       //按位或      (有乙個1就是1)

^    //按位異或    (相同為0不同為1)

注:他們的操作必須為整數

關係操作符:(>    >=   

警告:在程式設計中==與=容易不小心寫錯

邏輯操作符:

&&        邏輯與

||            邏輯或

條件操作符:

exp1 ? exp2 : exp3

用法:用條件操作符求最大值

#includeint main()

逗號表示式:

逗號表示式,從左向右依次執行。整個表示式的結果是最後乙個表示式的結果

用法:

#includeint mian()

c 類的操作符過載注意事項

一定要在operator 中檢查是否self assignment 物件的自我賦值 1.先清空現有的成員 釋放當前記憶體空間 2.傳遞拷貝進來的成員 3.return this 4.可以考慮是否加入轉移賦值class operator class friend ostream operator os...

c語言操作符 位操作符 移位操作符

1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...

C語言 , 操作符

例如 define to string s s 將會使編譯器把以下命令 cout to string hello world endl 理解為cout hello world endl 例如 define concatenate x,y x y int xy 10 將會使編譯器把 cout conc...