逗号运算符(‘,’)是C语言中优先级最低的运算符,它用于连接两个表达式(n-1个‘,’可以连接n个表达式)并从左至右执行表达式,最后一个表达式的值作为整个表达式的值。基本格式如下:
表达式1,表达式2,表达式3…,表达式n
举个例子:
#include<stdio.h>
main()
{
unsigned int a,b,c,d,e,f,g;
g=(a=1*2,b=a*3,c=b*4,d=c*5,e=d*6,f=e*7,f*8);
printf("%d\n",g);
}
最后g的值为40320。然而下面一段代码
#include<stdio.h>
main()
{
unsigned int a,b,c,d,e,f,g;
a=1*2;
b=a*3;
c=b*4;
d=c*5;
e=d*6;
f=e*7;
g=f*8;
printf("%d\n",g);
}
的结果也为40320。而且,在CodeBlocks下发现运行两段代码所用的时间一样,那么逗号运算符存在的意义是什么?下面给出一些可以用到逗号运算符的地方
1.宏定义
#define swap(a,b) a=a+b,b=a-b,a=a-b;
2.函数返回值
return a=1,b=2,a*b;
3.for循环
for(i=0,j=10;i<j;i++,j--)
4.作为考试题出现在考生试卷上……
个人认为,‘,’和‘{}’的作用类似,花括号让只能写一条语句的地方可以写多条语句,逗号运算符让只能写一个表达式的地方可以写多个表达式。