smi*_*dha 2 c++ pointers
在C++中,我声明一个空指针int* p=0,这是否意味着零是整数指针类型的一些特殊常量,或者它是否意味着p指向地址0x0?当然,因为它0x0必须是C++在分配变量/数组时从不接触的特殊地址.
int* p=0
p
0x0
bdo*_*lan 9
C++标准定义整数常量0转换为空指针.这并不意味着空指针指向地址0x0.它只是意味着当转换为指针时,文本"0"变为空指针.
当然,使得空指针具有除了0x0相当复杂之外的表示,因此大多数编译器只是让0x0空指针地址并确保在零处分配任何内容.
请注意,使用此零转换被视为不良样式.使用NULL(这是一个预处理器宏定义为0,0L或者其他一些零整数常量),或者,如果你的编译器足够新以支持它,nullptr.
NULL
0
0L
nullptr
归档时间:
14 年,4 月 前
查看次数:
2124 次
最近记录: