一个未声明的变量如何输出一个值

时间:2017-08-31 14:49:22

标签: c++ gcc gnu

在我的函数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;
}

1 个答案:

答案 0 :(得分:4)

您正在输出<ctime>标头中声明的std::time函数的地址。您还使用using namespace std;语句。为什么应该避免这种情况在this SO post中解释。根据编译器和平台的不同,如果在Windows上使用VC ++编译器,则可能会得到类似于(0x)00DC52E0的十六进制输出,如果在Linux上使用g ++编译器,则可以获得数字1