请问这两个问题为什么有不同的结果:
main()
{int j=2;
printf("j=%d,(j++)+(j++)+(j++)=%d\n",j,(j++)+(j++)+(j++));
j=2;
printf("j=%d,(++j)+(++j)+(++j)=%d\n",j,(++j)+(++j)+(++j));
}
运行结果:j=5,(j++)+(j++)+(j++)=9
j=5,(++j)+(++j)+(++j)=12
而如果改成:
main()
{int j=2,y1,y2;
y1=(j++)+(j++)+(j++);
printf("j=%d,(j++)+(j++)+(j++)=%d\n",j,y1);
j=2;
y2=(++j)+(++j)+(++j);
printf("j=%d,(++j)+(++j)+(++j)=%d\n",j,y2);
}
运行结果:j=5,y1=6
j=5,y2=15