c语言问题,不懂答案

img


答案是4可以详细讲一下吗

这就是一个逗号表达式嘛,顺序运算,从前往后计算,第二个表达式计算结果是b=3,最后一个表达式的值就是整个逗号表达式的值,所以结果就是4

逗号表达式的值,是最后一项的值,即a+b,因为第二项修改了b的值,b=3,所以a+b=4。

从右往左计算,然后返回最左边的那个值
因为前面的计算没有给a进行赋值
所以答案a+3就是4了