float x=1,y 则y=1+x*++x是多少呢?

来源:百度知道 编辑:UC知道 时间:2024/06/25 22:59:53

x++,出现在一个语句中,相当于先执行这个语句(用x替换x++),做完后再使x的值增1
++x,出现在一个语句中,相当于先使x的值增1,然后执行这个语句,与x++正好相反

你的原式是y=1+x*++x
你这个里面的++x是自加1的 所以改写后为
x1=x
x=x+1
x2=x
y=1+x1*x2
结果为3

你问的结果就是3 相信我 我仔细调试过 你看我下面的说明就知道为什么他们得出来的是5了

如果你的原式是y=1+(++x*x) 注意 只是将++x和x调换了位置,则改写后为
x=x+1
x1=x
x2=x
y=1+x1*x2
结果为5

经DevC++实践是5
但由于编译器的不同实现原理,可能其它Compiler结果不一致.

本式应等价于:
float x=1,y;
++x;
y=1+x*x;

所以y的值为:5

++x=2,x=2
1+x*++x=1+4=5
5.00000

5,++x在运算前进行,就是x=x+1,然后再把x=2带入算就好了啊

5
++x先做。
y=1+2*2.