可以使用0L初始化C++中的指针导致问题吗?

sha*_*oth 2 c++ pointers null-pointer

这个问题中,初始化器用于将指针设置为null.而不是使用值的00L.我已经读过,应该完全0使用空指针,因为精确的空指针表示是特定于实现的.

可以使用0L设置指针为null导致移植时出现问题吗?

And*_*nck 16

从标准(4.10.1):

空指针常量是整数类型的整数常量表达式(5.19)rvalue,其值为零

所以我猜对了0L.


Ker*_*elJ 13

我认为0L很好,除了它意味着你认为你指定的指针类型与长整数相同,因此有点令人困惑.

我认为使用NULL更清楚.

  • 0xDEADBEEF特别糟糕.0是唯一可以设置指针的值(空指针),指针的大小无关紧要. (4认同)