c 逗號表示式 關於逗號運算子的理解

2021-10-18 21:24:24 字數 905 閱讀 3001

c語言中運算子有很多,包括算數運算子、關係運算子、賦值運算子、位運算子、邏輯運算子、三目運算子、sizeof運算子、逗號運算子等等,那今天我們就重點來給大家討論一下關於逗號運算子的一些運算規則。

首先逗號運算子是非常簡單的,對於初學者來說,只要在相應的ide環境中進行測試便可以得到想要的結果;但是對於逗號運算子存在很多變種的題目,在一些筆試面試題中經常會見到,但是在真正的實際開發用的卻不是很多,既然有網友問道這樣的題目,那今天我就簡單的給大家解釋一下,什麼是逗號運算子?

逗號運算子是指在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後乙個表示式的值。

舉個例子:

int a1,a2,b=2,c=7,d=5; // 第1行

a1=(++b,c--,d+3); // 第2行

a2=++b,c--,d+3; //第3行

對於給a1賦值的**,有三個表示式,用逗號分開,所以最終的值應該是最後乙個表示式的值,也就是(d+3)的值,為8,所以a1的值為8。

對於給a2賦值的**,也是有三個表示式,這時的三個表示式為a2=++b、c--、d+3,(這是因為賦值運算子比逗號運算子優先順序高)雖然最終表示式的值雖然也為8,但b=4(第2行**運算完時,b=3,即第3行**執行時,b的值為4),所以a2=4

再來乙個關於結合性的例子:

int i=24;

int n = (i++,i++,i++,i++); // n == 27

因為逗號運算子的結合性是自左向右,所以四個i++會依次執行,但是最後乙個i++在賦值之後才進行運算,所以最終返回27。

關於逗號運算子就是這麼簡單,你學會了嗎?

C 逗號運算子與逗號表示式

c 將賦值表示式作為表示式的一種,使賦值操作不僅可以出現在賦值語句中,而且可以以表示式形式出現在其他語句 如輸出語句 迴圈語句等 中。這是c 語言靈活性的一種表現。請注意,用cout語句輸出乙個賦值表示式的值時,要將該賦值表示式用括號括起來,如果寫成 cout3 5,6 8 稱為逗號表示式,又稱為 ...

C 逗號運算子與逗號表示式

c 將賦值表示式作為表示式的一種,使賦值操作不僅可以出現在賦值語句中,而且可以以表示式形式出現在其他語句 如輸出語句 迴圈語句等 中。這是c 語言靈活性的一種表現。請注意,用cout語句輸出乙個賦值表示式的值時,要將該賦值表示式用括號括起來,如果寫成 cout 3 5,6 8 稱為逗號表示式,又稱為...

逗號運算子和逗號表示式

逗號運算子和逗號表示式 逗號運算子 逗號運算子是以逗號為分隔符的列表中最後乙個表示式的值。本質上講,逗號的作用是導致一系列運算都被順序執行。最右邊的那個表示式的值將作為整個逗號表示式的值,其他的表示式的值將會被丟棄。逗號運算子是所有運算子中級別最低的。例如,有如下表示式 var count 19,i...