在我的函数sumofrange
中,我决定输出一个未声明的变量,以便了解C ++中的不同编译器错误。令我惊讶的是,time
似乎输出1,即使它没有在任何地方声明。
#include <iostream>
#include <cmath>
using namespace std;
int sumOfrange( int lower, int upper){
cout<<time<<endl;
return ((( (pow(upper,2)) + upper) - ((pow(lower,2)) + lower)) / 2);
}
int main(){
cout<<sumOfrange(7,100)<<endl;
return 0;
}
答案 0 :(得分:4)
您正在输出<ctime>
标头中声明的std::time函数的地址。您还使用using namespace std;
语句。为什么应该避免这种情况在this SO post中解释。根据编译器和平台的不同,如果在Windows上使用VC ++编译器,则可能会得到类似于(0x)00DC52E0
的十六进制输出,如果在Linux上使用g ++编译器,则可以获得数字1
。