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

jin*_*575 2 c++ initialization

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

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

Alo*_*ave 9

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

  • Nit pick:*读取*未初始化的变量无效.*使用*否则完全有效.怎么回事?a = 3;`工作?`a = 3`使用未初始化的`a`. (4认同)
  • @JoachimIsaksson C++ 11 [conv.lval]"如果glvalue引用的对象不是T类型的对象,并且不是从T派生的类型的对象,或者如果对象未初始化,则需要一个程序这种转换有不明确的行为." (3认同)