在C语言中,“,”的用法有两种:一种是做分隔符,另一种是作运算符。在变量声明语句、函数调用中,逗号是做分隔符用的,例如:
int a,b,c;
scanf("%f%f%f",&f1,&f2,&f3);
C语言还允许用逗号连接表达式。例如:x=5.6,y=2.1,10+x,x+y,这里用3个逗号运算符将4个表达式连接成一个逗号表达式。
逗号表达式的一般格式如下:
表达式1,表达式2,表达式3,......,表达式n
例如,下面就是一个逗号表达式:
a=2*6,a-4,a+15
当逗号作为运算符使用时时一个双目运算符,其运算优先级是所有运算符中最低的。逗号运算符的运算顺序是自左向右,上式a的值最终为12,因为后面两个表达式的值仅进行了运算,并没有赋值给a。又如:
int j=5;
a=(a=j+1,a+2,a+3);
上述赋值语句的执行顺序为先对a变量赋值6,再计算a+2得8,再计算a+3得9,最后将9作为逗号表达式的值赋给变量a.如果将括号去掉,则a为6
如下例:
#include <stdio.h> void main() { int a=5,b=8,c=8,x,y; x=a+b,b+c; y=(a+b,b+c); printf("%d,%d",x,y); }
结果为