不等于0检查指针上的非null?

时间:2011-03-11 21:33:01

标签: c++

其中p是指针的名称,p!= 0是否返回一个为true的bool,其中p为null(不指向任何东西)?

4 个答案:

答案 0 :(得分:4)

是。 C和C ++标准指定0指针不是有效的内存位置。

答案 1 :(得分:3)

它特别检查,如标题所示,指针是否为非空,或者不是值0x00000000。您的指针可能实际上并未指向任何有效的指针(例如,可能是指向内存中某个随机点的已删除指针),但在此之后检查您是否知道它不是NULL

编辑:

问题的措辞发生了变化,但如果p != 0不是truep将返回NULL

答案 2 :(得分:2)

是的,在C ++中,0是空指针的值。

答案 3 :(得分:1)

不指向任何内容意味着a == NULL

但是,在任何现代计算机/操作系统上,NULL可靠地定义为0。只有当您编写嵌入式系统或符合非常旧的标准时,您才应该/必须使用NULL。但是你使用C ++而不是C的事实已经确保它确实是0。