我应该写"0x0"还是"0"而不是NULL?

mok*_*oka 14 c++ null

我知道你应该0在c ++中使用而不是NULL(即使在大多数情况下在C++中NULL定义0).

不过,最近我遇到了一些使用的代码0x0.

有什么不同?

Meh*_*ari 27

0x0只是0用十六进制表示法编写.两者没有区别:

0 16 = 0 10 :)

NULL通常是#define0某个地方并做同样的事情.


Jer*_*fin 17

没有区别.在C中,NULL通常被定义为(void *)0,但在C++中是不允许的.一些古老的编译器错了,但它们确实很古老.

IMO,最好使用NULL,因为它更清楚地描绘了意图,并在编译器更新为C++ 0x时为S&R提供了一个漂亮,简单的符号,其中包括nullptr.


ton*_*ony 6

顺便说一句,每个人,

正如你所提到的,0x0是十六进制,但是

0是八进制,不是十进制!:-)

即任何以0开头(而不是后跟x)的数字是八进制的:

0 = 0
01 = 1
02 = 2
...
07 = 7
010 = 8
011 = 9
012 = 10
...

:-)

  • 我打算投你的混淆视频.但我必须首先检查标准......你是对的.每天学习新东西(不是值得记住,但我会反正). (2认同)

Mic*_*fik 5

0x0并且0表示相同的值,因此您可以使用最适合您眼睛的值.当我们得到C++ 0x时,我们将使用关键字nullptr来表示任何类型的空指针.