c语言中的逗号运算符
返回值 = (表达式1,表达式2,表达式3,,,,,,表达式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的值