首先我们来看一段代码
#include<stdio.h>
int main()
{
int x;
int a=1,b=2,c=3;
x=(a++,b++,c++);
printf("%d",x);
}
逗号运算符会取最右边的值,即x=c++;
运算得x=3;
#include<stdio.h>
int main()
{
int x;
int a=1,b=2,c=3;
x=(a++,b++,b++);
printf("%d",x);
}
那如果我们把c++改为b++;那么x的值是2还是3呢?
答案是3,逗号运算符取最右边值,但是前面的运算并不会跳过,所以程序先进行了b++运算,此时b的值为3,再将b赋值给x,最后b再次自增,所以最后x的值为3,而b的值为4