在C ++中增加一个未初始化的int安全吗?

时间:2013-06-29 13:59:51

标签: c++ initialization

int func() {
    int a;
    ++a;  // is this safe?
    printf("%d\n", a);
}

我知道什么时候我打印a我得到了未定义的行为,但{C}标准中++a安全吗?这会将“另一个”未初始化的值分配给a而没有副作用(抛出异常或导致程序崩溃)吗?

3 个答案:

答案 0 :(得分:9)

无论如何使用未初始化的变量会为您提供未定义的行为。所以,
在C ++中,没有未初始化的int增加不安全

答案 1 :(得分:0)

您的程序可能不会崩溃,但肯定不安全。您应该始终初始化变量。可能发生的最糟糕的事情是你的程序看起来会起作用,但会在不知道原因的情况下随机崩溃,或者只是以一种奇怪的方式行事。

答案 2 :(得分:-3)

“未定义的行为”是什么意思?在我看来,你的程序应该打印一些int,没有任何例外等等。

我猜,

++(uninitizalized int)绝对合法。无论var是否被初始化,它都只会增加当前值。

但无论如何,未初始化的变量是邪恶的。