<分区>
例如,声明一个引用而不将其分配给某物会导致编译器错误,例如。 int &refVar;
但这不适用于指针。我知道 C++ 会跳过一些合理的默认功能,例如跳过绑定(bind)检查等以提高速度,但这个理论不太适合指针变量。
为什么有人会声明一个指针变量而不将其初始化为某物?为什么不使用 NULL
/0
甚至 nullptr
?大多数静态分析器实际上指出了这个问题,但是定义这个未定义行为的可能原因是什么?这不是 bug 的主要来源吗?
<分区>
例如,声明一个引用而不将其分配给某物会导致编译器错误,例如。 int &refVar;
但这不适用于指针。我知道 C++ 会跳过一些合理的默认功能,例如跳过绑定(bind)检查等以提高速度,但这个理论不太适合指针变量。
为什么有人会声明一个指针变量而不将其初始化为某物?为什么不使用 NULL
/0
甚至 nullptr
?大多数静态分析器实际上指出了这个问题,但是定义这个未定义行为的可能原因是什么?这不是 bug 的主要来源吗?
最佳答案
我认为这很可能是由于初始化这些变量可能产生的开销。这对于一个变量来说可能不是什么大问题,但想象一下在堆栈上分配的数组。
关于c++ - 为什么c++没有默认初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34902700/