问个小问题
main(){
float a=1;
a+=a++;
printf("%f\n",a);
getch();
}
结果是:2.000000
main()
{
int a=1;
a+=a++;
printf("%d\n",a);
getch();
}
结果是:3
这是为什么啊
刚学 不懂的很多 望不吝赐教
----------------解决方案--------------------------------------------------------
不知道你的编译系统是什么
我的结果是
3.000000
3
----------------解决方案--------------------------------------------------------
我的也是2。000000和3
用的是WIN-TC2。0
----------------解决方案--------------------------------------------------------
研究这个没意义。
未定义行为。
----------------解决方案--------------------------------------------------------
我用的VC++
结果是3和3.00000
----------------解决方案--------------------------------------------------------
编译器得问题.
----------------解决方案--------------------------------------------------------
对浮点数最好别用 ++
----------------解决方案--------------------------------------------------------
楼上的为什么啊?难道是a++=a+1;算的次数多了,由于精度问题会随着计算次数影响计算结果?
----------------解决方案--------------------------------------------------------
应是WIN TC 2.0 的问题
我用 英文原版 2.0 3.0 完全正常
原我用过一段 win tc 2 win to 3 有些小误差
----------------解决方案--------------------------------------------------------
我用的编译器是 gcc version 4.1.2
结果是:3.000000
3
我猜楼主用的一定是TC了.
----------------解决方案--------------------------------------------------------