结果为什么都是11,过程怎么算的?

#include <stdio.h>

int main()
{
    int x=11;
    int y=x++;
    printf("%d,%d\n",(x++,y),y++);
    return 0;

}

#include <stdio.h>
int main()
{
    int x=11;
    int y=x++;                         //先把x值赋给y,再把x+1,得到y=11,x=12
    printf("%d,%d\n",(x++,y),y++);     
/*(x++,y),y++
1步-->计算x++得x=13
2步-->计算(x+y)得y = 11
3步-->计算y++得y=12
最后结果是printf("%d,%d\n",y,y);x=13,y=12;其中printf里的y=11*/
    return 0;
}

像,(逗号)的计算返回的都是最后的计算结果如a*b,c+d,e+f;返回的是e+f的值

像++自加运算是在每步运算之后再计算

如a+b++,a--,b++

计算时先计算a+b++  再是 a-- 再是 b++ 

第一步计算后b+1

第二部计算后a-1

第三步是,逗号的返回值所以先计算,再b+1

改为:  int w = (x++,y);  再输出, 你看看结果。 

改为:  int w = (x++,y);  再输出, 你看看结果。 

x++先赋值后运算