學習筆記之逗號操作符 內附操作符的優先順序表

2021-09-28 19:34:50 字數 1602 閱讀 6848

逗號操作符是乙個二元操作符,其標準使用形式如下:

表示式1,表示式二;

其計算順序是從左到右的順序先計算表示式1,在計算表示式二。

例如:

a += 2;

c*4;

//用逗號操作符組合,也可達到同樣的效果

a += 2,c * 4;

//程式依然會先執行a的自增,再執行c*4

然而有時對於一些語句使用逗號操作符會產生一些歧義,例如

a = c * 4, ++c;
這個語句中自增操作符的優先順序最高

因此按照優先順序順序應該先執行 ++c

但是大部分編譯器中,該語句首先起到作用的是逗號操作符,先執行逗號的前乙個表示式,在執行後乙個表示式,相當於:

a = c*4;

++c;

因此為了避免程式執行順序的歧義和執行邏輯的不清晰,盡量不要寫出類似的語句。與其他表示式一樣,逗號表示式也有乙個值,其值是最後乙個子表示式的值

#includeint main(void)

輸出結果為:

最後附上乙個操作符優先順序的**

優先順序操作符

名稱結合性1()

->

.括號或函式呼叫操作符

陣列操作符

指向成員操作符

成員操作符

自左向右2!

~++- -+-*

(type)

sizeof

邏輯非取反

自增自減

正號負號

指標操作符

型別轉換

位元組相反,自右向左3*

/%乘法除法

求余自左向右4+

-加法減法自左向右

5>>

<<

左移右移

自左向右

6<

>

<=

>=

小於大於

小於或等於

大於或等於

自左向右7==

!=等於

不等於自左向右8&

位與操作符

自左向右9^

位異或操作符

自左向右10|

位或操作符

自左向右

11&&

邏輯與自左向右

12||

邏輯或自左向右

13?:

條件操作符

相反,自右向左14=

+= -= *= /= %=

&= ^= |=

<<= >>=

賦值運算賦值

位操作賦值

位移賦值

相反,自右向左15,

逗號操作符

自左向右

逗號操作符

逗號操作符 可以構成逗號表示式 逗號表示式用於將多個子表示式連線為乙個表示式 逗號表示式的值為最後乙個子表示式的值 逗號表示式的前n 1個子表達 先來看乙個例子 include include using namespace std void func int i intmain int i 0 i...

逗號操作符過載

逗號操作符語義 將多個子表示式連線為乙個表示式,整個表示式的值是最後乙個表示式的值。前 個表示式可以沒有返回值。從左到右計算每個子表示式的值。逗號操作的過載 使用全域性函式對逗號操作符進行過載。過載函式引數必須有乙個是類型別。過載函式返回值型別必須是引用。class operator const c...

Kotlin學習 集合操作符之總數操作符

原集合 val list num arraylist arraylistof 1,2,3,5,6,7,8 1.any 只要有乙個符合就返回true 操作符 val any list num.any 結果 any true 2.all 集合中所有元素都滿足函式才返回true 操作符 val all l...