- 程序设计基础教程:C语言
- 常东超 刘培胜 郭来德等编著
- 621字
- 2025-02-17 17:28:16
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