为什么在我尚未将变量设置为任何值的情况下返回一个值?

时间:2019-09-27 04:32:55

标签: c++

我正在尝试学习C ++,特别是如何声明和初始化变量。我写了这段代码,但我不知道为什么变量c给出了一个我尚未分配的值。

#include <iostream>
using namespace std;

int main()
{
    cout << "Hello World!\n";

    int a, b;
    a = 1;
    b = 2;
    int d(4);
    int result;
    auto num = b;
    decltype(b) c;

    result = a + b - d;
    cout << c;
}

输出为-2,但我没有在任何地方声明c = -2!

2 个答案:

答案 0 :(得分:1)

如果尚未初始化变量,则该变量将包含垃圾值。

答案 1 :(得分:1)

在C / C ++中,在函数中声明的值表示CPU堆栈上主内存的某些字节。这些字节通常很脏,需要初始化。如果不这样做,则值是不确定的。您总是得到“ -2”只是巧合。