c语言中的逗号运算符

 

返回值 = (表达式1,表达式2,表达式3,,,,,,表达式n)

返回值 = 表达式n的值,类似于一个串联的感觉

相当于一个顺序表达式,看如下的例子

int a, b;
b = (a = 5, a * 4), a + 3;

得到的结果: a = 5, b = 20

这里要考虑优先级,当计算完(a = 5, a * 4) 之后,就对b进行赋值了,然后后面的a + 3就不起作用了。

所以 a = 5,b = a * 4 = 20

如果加上括号保证优先级的话

int a, b;
b = ((a = 5, a * 4), a + 3);

得到的结果:a = 5, b = 8

在第一个括号中,只对a进行了赋值,然后后面的a + 3就是b的值

posted @ 2020-06-16 10:29  Let_Life_Stop  阅读(399)  评论(0编辑  收藏  举报