c++中空指针既然不能被访问,那这样初始化的用处是什么?

突然想到了这样一个问题,可能钻牛角尖了。
请佬回答一下,万分感谢

这样初始化是哪样初始化啊?
如果是指针定义的时候初始化为NULL,那是为了后续程序可以进行指针是否为空的判断,否则会默认为所分配地址的历史遗留值,无法预测是什么

空指针的作用主要是表示某个指针变量当前不指向任何有效的内存地址,即指向“空”。在 C++ 中,可以将指针初始化为空指针,即将其赋值为 nullptr(C++11 引入的关键字)或 0(早期的初始化方式),以便在程序运行时判断某个指针是否为空。
空指针的初始化可以用于以下情况:

  1. 避免野指针:在定义指针变量时,如果未对其进行初始化,该指针变量将指向一个无法确定的内存地址,称为“野指针”。而将其初始化为 nullptr 或 0 可以避免出现野指针。
  2. 作为函数参数的默认值:某些函数的参数可以是指针类型,为了方便使用,可以将其初始化为 nullptr,表示该参数可以不传值。例如:
    void func(int* p = nullptr);
  3. 标记某些状态:在程序中,可以定义特殊的指针值来表示某些状态,例如定义一个空链表的头指针为 nullptr。
    总之,空指针的初始化可以提高程序的健壮性和可读性,避免出现野指针和空指针引用等错误。