想问一下这条语句是怎么运行的

include<stdio.h>

int main()
{
int x=3,y=3,z=1;
printf("%d,%d,%d",(++x,y++),z+x+y+2);
return 0;
}

答案是:4,3,9吗

但是在线编译器算出来的是这个,和楼主的也不一样

img

3 9 95的结果我大概可以解释一下,它不是一共输出三个整数吗,对应第一个整数是(++x,y++)若果我没记错,括号运算符是输出最后一个值,这里对应的是y++也就是3 因为先输出后自增 第二个整数对应的就是z+x+y+2 但是需要注意,C语言应该是从右往左看的,所以这个时候xy都还没有自增,所以也就是9 由于第三个整数是空的,所以应该输出对应的ASCII值吧,大概空对应的是95,我没查。