複製鏈接
請複製以下鏈接發送給好友

逗號運算符

鎖定
逗號運算符在C語言和C++語言中,可以把多個表達式用逗號聯接起來(或者説,把這些表達式用逗號分開),構成一個更大的表達式。其中所構成的表達式稱為逗號表達式。逗號表達式中用逗號分開的表達式分別求值,以最後一個表達式的值作為整個表達式的值。
中文名
逗號運算符
外文名
Comma Operator
應用範圍
C語言,C++語言
最後一個表達式的值

目錄

逗號運算符簡介

逗號運算通常用於 for 結構的括號內的第一個表達式,用於給多個局部變量賦值
例如下面是用於求從1 到 100之間對 n2 求和的程序:
int main() {
int n, sum;
for(n = 1, sum = 0; n <= 100; n++) {
sum += n * n;
}
cout << "sum= " <
return 0;
}
其中的“n=1, sum = 0” 就是使用逗號運算符構成的一個逗號表達式。

逗號運算符注意事項

如果在語句中同時用了逗號運算符和賦值運算符,則需要特別注意,賦值運算符的優先級高於逗號運算符。看下面這兩個例子:
int a1, b = 2, c = 7, d = 5; // 第1行
a1 = (++b, c--, d+3); // 第2行
本例,對於第2行,由於用逗號分開的三個表達式被包含在括號內,所以先計算這個括號內的表達式,再進行賦值。括號內的表達式的最終值應該是最後一個表達式的值,也就是 (d+3) 的值,為 8,所以 a1 被賦值為 8。
int a1, b = 2, c = 7, d = 5; // 第1行
a1 = ++b, c--, d+3; // 第2行
本例,對於第2行,由於賦值運算符的優先級高於逗號運算符,所以“a1=++b” 實際是逗號表達式中的一個子表達式,雖然最終表達式的值雖然也為 8,求值之後,“++b” 的值為3,a1被賦值為 3,而整個逗號表達式的值為 8。