C++ 指针后括号的含义

C++ 指针后括号的含义,c++,pointers,initialization,dynamic-memory-allocation,parentheses,C++,Pointers,Initialization,Dynamic Memory Allocation,Parentheses,我想问一下指针后面的(0)是什么意思,即节点*ptr1(0) 这意味着用0或null初始化指针 请参阅问题以了解其背后的解释(它们实际上是相同的;0和null)对于任何整数类型T,以下两个声明实际上是等效的: T obj(0); T obj = 0; 因为0是一个空指针常量,所以这里要做的就是将两个指针初始化为空 P>有很多方法初始化对象,但是考虑如何声明类类型的对象: MyClass obj(someArguments...); 这是一样的。这是 如果T是非类类型,则在必要时使用标准转换

我想问一下指针后面的
(0)
是什么意思,即
节点*ptr1(0)


这意味着用0或null初始化指针


请参阅问题以了解其背后的解释(它们实际上是相同的;
0
null

对于任何整数类型
T
,以下两个声明实际上是等效的:

T obj(0);
T obj = 0;
因为
0
是一个空指针常量,所以这里要做的就是将两个指针初始化为空

<> P>有很多方法初始化对象,但是考虑如何声明类类型的对象:

MyClass obj(someArguments...);
这是一样的。

这是

如果T是非类类型,则在必要时使用标准转换将other的值转换为T的cv非限定版本

对于指针类型,使用0初始化它将使其成为空指针。看

null指针常量(请参见null)可以转换为任何指针类型,结果是该类型的null指针值


这是一个构造函数调用。由于没有定义构造函数,编译器提供了一个。
在C++11之后,首选的形式是'Node*ptr1{0};'使用大括号。

这只是初始化指针。它正在初始化为null

>注意,不要用“<代码> 0 < /COD>或<代码> null < /代码>初始化指针>,而应该使用<代码> NulLPTR < /C>作为C++ 11。<代码> 0 和 NULL//> >不相同。你也可以使用nullptrWell,当然它们不是,但是在这个上下文中@LightnessRacesInOrbit它们表示相同的…没有指针、编译器提供的构造函数或其他构造函数。谢谢,'Node*ptr1{nullptr};'也会是一个更好的选择。
MyClass obj(someArguments...);