C语⾔基础⼁运算符之逗号运算符(⼋)
在C语⾔和C++语⾔中,可以把多个表达式⽤逗号联接起来(或者说,把这些表分达式⽤逗号分开),构成⼀个更⼤的表达式。其中的逗号称为逗号运算符,所构成的表达式称为逗号表达式。逗号表达式中⽤逗号分开的表达式分别求值,以最后⼀个表达式的值作为整个表达式的值。
逗号运算符是⼆元运算符,逗号表达式的⼀般形式为:
表达式1 , 表达式2
逗号表达式的⼀般形式可以扩展为:
表达式1,表达式2,表达式3……表达式n
它的值为表达式n的值。
逗号运算符确保操作数被顺序地处理:先计算左边表达式1的操作数,再计算右边表达式2的操作数。整个逗号表达式的值是表达式2的值。
例如,逗号表达式“3+5,6+8”的值为14。
逗号运算符的特点:
优先级别最低;
⾃左往右执⾏表达式;
返回值为表达式最后⼀个.
逗号运算符的优先级是所有运算符中最低的。如果希望逗号运算的结果⽤于另⼀个赋值运算中,就需要使⽤括号。
因此,下⾯两个表达式的作⽤是不同的:
  ① x=(a=3,6*3)
  ② x=a=3,6*a
第①个是⼀个赋值表达式,将⼀个逗号表达式的值赋给x,x的值等于18。第②个是逗号表达式,它包括⼀个赋值表达式和⼀个算术表达式,x的值为3。
其实,逗号表达式⽆⾮是把若⼲个表达式“串联”起来。在许多情况下,使⽤逗号表达式的⽬的只是想分
别得到各个表达式的值,⽽并⾮⼀定需要得到和使⽤整个逗号表达式的值,逗号表达式最常⽤于循环语句(for语句)中.
请注意并不是任何地⽅出现的逗号都是作为逗号运算符。例如函数参数也是⽤逗号来间隔的。如
  printf("%d,%d,%d",a,b,c);
上⼀⾏中的“a,b,c”并不是⼀个逗号表达式,它是printf函数的3个参数,参数间⽤逗号间隔。
如果改写为
  printf("%d,%d,%d",(a,b,c),b,c);
则“(a,b,c)”是⼀个逗号表达式,它的值等于c的值。括弧内的逗号不是参数间的分隔符⽽是逗号运算符。括弧中的内容是⼀个整体,作为printf函数的⼀个参数。
注意:并不是任何地⽅出现的逗号,都是逗号运算符。很多情况下,逗号仅⽤作分隔符。
逗号表达式的⽤途:
在for循环⾥经常会⽤到,
1、在for⾥⾯的应⽤:
int i;int j;
for(i=0,j=0;i<5;i++,j++)
2、当分隔符:int i,j;
除了在for循环⾥⽤到外,我们在宏定义⾥也经常遇到:
#define SWAP(a,b)    a^=b,b^=a,a^=bc语言中逗号运算符怎么运算
⽽传统多⾏语句的写法是do {...} while(0);
相⽐⽽⾔,很多时候在宏中还有⽤逗号表达式写简洁多了。
最后,如果你正在学习编程遇到瓶颈,感到迷茫,困惑,值得加⼊我的【】
学习交流,技术探讨,⾯试指导,简历修改...还有超多源码素材等学习资料,零基础的视频等着你!