在C語言中逗號“,”也是一種運算符,稱為逗號運算符。 其功能是把兩個表達式連接起來組成一個表達式, 稱為逗號表達式。其一般形式為:
表達式1, 表達式2
其求值過程是分別求兩個表達式的值,並以表達式2的值作為整個逗號表達式的值。
【例3-19】逗號運算符舉例
#include <stdio.h>
int main(void){
int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
printf("y=%d,x=%d",y,x);
return 0;
}
運行結果:
y=6,x=6
注意:經過讀者@倍彪譯的反饋,筆者意識到,上面的代碼不能體現逗號表達式的效果,現將代碼作如下更改:
#include <stdio.h>
int main(void){
int a=2,b=4,c=6,x,y;
y=(x=a+b,b+c);
printf("y=%d, x=%d \n",y,x);
return 0;
}
運行結果:
y=10, x=6
本例中,y等於整個逗號表達式的值,也就是表達式2的值,x是第一個表達式的值。
對於逗號表達式還要說明三點:
1、逗號表達式一般形式中的表達式1和表達式2 也可以又是逗號表達式。例如:
表達式1, ( 表達式2, 表達式3 )
形成了嵌套情形。因此可以把逗號表達式擴展為以下形式:
表達式1, 表達式2, …表達式n
整個逗號表達式的值等於表達式n的值。
2、程序中使用逗號表達式,通常是要分別求逗號表達式內各表達式的值,並不一定要求整個逗號表達式的值。
3、並不是在所有出現逗號的地方都組成逗號表達式,如在變量說明中,函數參數表中逗號只是用作各變量之間的間隔符。