当我还没有准备好声明适当的值时,为什么要使用空指针? 我正在学习C++中的代码,遇到了空PTR。我读的那本书说空指针不能被取消引用。这是有道理的,因为没有什么可以取消引用。但是我的问题是,如果空指针不能被取消引用,那么在定义一个您还没有准备好初始化的变量的上下文中使用它们又有什么意义呢。这意味着如果我正在编写一个程序,如下所示: int h =10; int* h_pointer = &h; int z = 123; int* z_pointer = nullptr;

当我还没有准备好声明适当的值时,为什么要使用空指针? 我正在学习C++中的代码,遇到了空PTR。我读的那本书说空指针不能被取消引用。这是有道理的,因为没有什么可以取消引用。但是我的问题是,如果空指针不能被取消引用,那么在定义一个您还没有准备好初始化的变量的上下文中使用它们又有什么意义呢。这意味着如果我正在编写一个程序,如下所示: int h =10; int* h_pointer = &h; int z = 123; int* z_pointer = nullptr;,c++,null-pointer,C++,Null Pointer,如果我不能将后面的值从null更改为&z,为什么要使用null指针 无法取消对空指针的引用 意味着你不能这样做 *z_pointer = z; 例如,它是完全可以接受的,并且可以在不取消引用的情况下写入指针本身 z_pointer = &z; 您可以稍后将z_指针的值更改为&z,因此“如果我不能将later的值从null更改为&z,那么为什么要使用null指针?”毫无意义。“无法取消引用”与无法修改不同。您可以稍后分配z_指针=&zh,h_指针,z和z_指针都是变量,这意味着可以在程

如果我不能将后面的值从null更改为&z,为什么要使用null指针

无法取消对空指针的引用

意味着你不能这样做

*z_pointer = z;
例如,它是完全可以接受的,并且可以在不取消引用的情况下写入指针本身

z_pointer = &z;

您可以稍后将
z_指针的值更改为
&z
,因此“如果我不能将later的值从null更改为&z,那么为什么要使用null指针?”毫无意义。“无法取消引用”与无法修改不同。您可以稍后分配
z_指针=&z
h
h_指针
z
z_指针
都是变量,这意味着可以在程序运行时更改它们。您可以让z_指针指向任何
int
,让程序中的其他描述取消引用,甚至更改它所指向的
int
的值
nullptr
s也可以很好地标记链表的结束。下面是一个示例,演示如何更改
int*
所指向的内容。您实际上不需要同时声明它们。你可以把它放得更接近它的用途。(这通常是件好事)