c语言 逗号运算法则 求解

img

img


求帮我讲解一下 第二个图第二个3,3是怎么输出出来 帮我说说思路

int i=1;
printf("%d,%d",i,(i++,i+1,i++,i+1));
printf("i=%d",i);

结果是3,4 i=3
然后让我们分析一下,输出列表是自由往左运算,也就是先计算(i++,i+1,i++,i+1)这个表达式取最后一个逗号右边的值,i++等于1,i+1等于3,i++等于2,i+1等于4,输出的就是最后一个4,但i+1并没有改变i的值,所以左边的是3,第二个输出i=3