C语言中y=x++ y=++x的结果为什么不同

如题所述

前置自加 先自加 再赋值。
后置自加 先赋值再自加。
所以,y=x++ , y值是自加前的。
y=++x; y值是自加后的。
二者差1.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-20
如果你没打错,结果是一样的;
程序1如下:
# include <stdio.h>
main()
{
int x=5;
int a;
a=(++x)*(++x);
printf("%d",a);

}
程序2如下:
# include <stdio.h>
main()
{
int x=5;
int a;
a=++x*++x;
printf("%d",a);

}
运行结果完全一样,都是49;

程序3如下:
# include <stdio.h>
main()
{
int x=5;
int a;
a=(++x)*(++x);
printf("%d",a);
a=++x*++x;
printf("%d",a);

}
这样写的话,结果就不一样,因为在执行a=++x*++x前,x的值已经不是5,而是7了。本回答被网友采纳
相似回答