- 程序設計基礎教程:C語言
- 常東超 劉培勝 郭來德等編著
- 621字
- 2020-05-07 11:49:29
2.7 逗號運算符和逗號表達式
“,”是C語言提供的一種特殊的運算符,稱為逗號運算符。逗號運算符的結合性為從左到右。在所有運算符中,逗號運算符的優先級最低。
由逗號運算符將表達式連接起來的式子稱為逗號表達式。
逗號表達式的一般格式為:
表達式1,表達式2,…,表達式n
逗號表達式的求解過程為:先求表達式1的值,再求表達式2的值,依次進行,最后計算表達式n,整個逗號表達式的值就是最后一個表達式的值。例如,逗號表達式3+5,1+2的值為3。又如,逗號表達式a=2*3,a*5的求解過程是:先計算a=2*3,經過計算和賦值后得到a的值為6,然后計算a*5,得30,因此整個逗號表達式的值為30。
使用逗號表達式要注意以下幾個方面:
①逗號表達式可以和另一個表達式組成一個新的逗號表達式。
例如:逗號表達式(a=2*3,a*5),a+5
表達式1是(a=2*3,a*5),表達式2是a+5,先計算表達式1的值為30,再計算表達式2的值為35,因此整個逗號表達式的值為35。
②并不是所有的逗號都是逗號運算符。
例如:
int a,b,c; /*這里的逗號是變量之間的分隔符,而不是逗號運算符*/
printf("%d,%d,%d\n",(a,b,c),a,b); /*只有(a,b,c)里的逗號才是逗號運算符*/
【例2.13】 逗號運算符運算舉例。
#include<stdio.h>
void main()
{ int a=3,b=4,c=5,x1,x2,x3,x4,x5,x6;
x1=(a,b,c);
x2=a,b,c;
x3=(a++,--b,a+b);
x4=a++,--b,a+b;
x5=(a++,--b,a+b+c++);
x6=((a,b,c),a+b);
printf("x1=%d,x2=%d,x3=%d,x4=%d,x5=%d,x6=%d\n",x1,x2,x3,x4,x5,x6);
}
程序運行結果:
x1=5,x2=3,x3=7,x4=4,x5=12,x6=7