C++ 带0的Struct init

C++ 带0的Struct init,c++,struct,C++,Struct,我有一个结构: struct stek { char value; struct stek *next; }; 为什么我可以这样初始化: stek *p = 0; 这是什么意思?为什么为零?这里的0表示NULL。在以前的C++11中,0可以用作NULL,这有时非常模糊。目前C++有代码> null ptr>代码>,这是更合理的。< /P> 阅读有关NULL和nullptr之间差异的更多信息。tldr 因为0是有效的内存地址 由于指针指向内存位置,因此表达式是有效的,p指向内存地址0我们如

我有一个结构:

struct stek
{
char value;
struct stek *next; 
};
为什么我可以这样初始化:

stek *p = 0;

这是什么意思?为什么为零?

这里的
0
表示
NULL
。在以前的C++11中,
0
可以用作
NULL
,这有时非常模糊。目前C++有代码> null ptr>代码>,这是更合理的。< /P> 阅读有关NULL和nullptr之间差异的更多信息。

tldr 因为0是有效的内存地址



由于指针指向内存位置,因此表达式是有效的,
p
指向内存地址0

我们如何知道您决定用0初始化指针的原因?请参阅:您对指针了解多少?你做了什么研究?