我什么时候需要初始化指向 nullptr 的指针?

The*_*ang 1 c++ qt pointers nullptr

当我阅读 Qt 的一些示例代码时,我通常会看到它们初始化了一个指向 的指针nullptr,例如:

QPushButton *startButton = nullptr;
Run Code Online (Sandbox Code Playgroud)

我有一些非常基本的概念nullptr,但自从我开始学习 C++ 以来,我从未真正使用过它。所以我想知道为什么他们会初始化一个指向nullptr而不是这样做的指针:QPushButton *startButton;,这样做有什么好处,我什么时候需要初始化指向nullptr

提前致谢。

Jes*_*uhl 5

您需要在读取之前初始化一个指针。

如果您只是有时在读取之前将其初始化为一个合理的值,那么nullptr在声明点将其初始化是有意义的,因为您将能够检测到nullptr“尚未初始化为合理的值”。

如果您的程序中有一个路径可以在初始化之前读取它,那么让指针未初始化是不好的,因为读取未初始化的变量是未定义的行为。