逗號操作符是乙個二元操作符,其標準使用形式如下:
表示式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...