求解释下列输出结果为什么是10

若有定义int a=1,b=2,c=3,d=4;则表达式(5+a,b*=c,d+=b)的结果为多少?

(5+a,b*=c,d+=b)
可以转换为
5+a;//没有变化
b*=c;//b=b*c=6;
d+=b;//d=d+b=4+6=10;
而以逗号为间隔的运算式的值是最后一个逗号后面的值,就是d+=b的值,为10;

3+5,6+8
称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为
表达式1,表达式2
逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如,上面的逗号表达式“3+5,6+8”的值为14。
所以上面是(6,6,10)所以结果是10,注意第二个表达式使得b变了6,会影响第三问成为6+4