C++中一个自加矛盾

发布时间:2024-04-30 11:22 发布:上海旅游网

问题描述:

#include<iostream>
using namespace std;
int main ()
{
int a = 1;
double d = 1.0;
d = 3 + d++;
a = 3 + a++;
cout<<d<<a<<endl;
system("pause");
return 0;
}
结果居然是4和5,令人吃惊不已,难道自加还有运算对象为整形的要求吗??
So Surprise
程序是怪了点,我觉得自加很奇怪,编几个加深映像,呵呵。。。
很奇怪,在dev-c++是4和5,在VisualC++里是5和5,是编译器的问题吧。
谢谢各位啊。

问题解答:

不错,我使用Visual C++sp6运行也是5和5的啊,不是楼主所说的4和5的吧?
我查阅了相关的资料得知,自增自减运算符只能用于变量,同时该变量可以是字符型、整型或者实型,但是不能是常量或者表达式,请楼主注意。
请楼主再试一下或者换个编译器看哈的,不同的编译器在进行这个运算的时候会有点区别的。

搞不清楚,不是,你编程思路不对,a++完你还a=3+a++……程序模模糊糊的……不过这个编译器倒是真奇怪

楼主错了吧,在我的机子上运行是5 5

是怪啊!结果真是不可思啊
关注你。。。

55
在Visual Studio 2005环境的输出结果

热点新闻