c++ - 什么时候需要初始化指向 nullptr 的指针?

标签 c++ qt pointers nullptr

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

QPushButton *startButton = nullptr;

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

提前致谢。

最佳答案

您需要在读取指针之前对其进行初始化。

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

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

关于c++ - 什么时候需要初始化指向 nullptr 的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47969071/

相关文章:

c - inptr 和 outptr 是什么意思

c++ - 无法读取外部类型和资源系统的文件

c++ - QThread : If there is no run() implemented, 在等待信号时它做了什么?

c++ - 图结构——指针不好吗?

c++ - 我对基于套接字的模型的图形表示和解释

c++ - 如何在http代理后面使用ftp url下载文件

c++ - 如何将 char* 从 C 传递到 CPP?

c++ - C++ 中的多维容器

c++ - 使用 gnuplot 动态绘制 volatile 数据文件

c++ - QT 文本编辑/文本浏览器动态高度