其中p是指针的名称,p!= 0是否返回一个为true的bool,其中p为null(不指向任何东西)?
答案 0 :(得分:4)
是。 C和C ++标准指定0指针不是有效的内存位置。
答案 1 :(得分:3)
它特别检查,如标题所示,指针是否为非空,或者不是值0x00000000
。您的指针可能实际上并未指向任何有效的指针(例如,可能是指向内存中某个随机点的已删除指针),但在此之后检查您是否知道它不是NULL
。
编辑:
问题的措辞发生了变化,但如果p != 0
不是true
,p
将返回NULL
。
答案 2 :(得分:2)
是的,在C ++中,0是空指针的值。
答案 3 :(得分:1)
不指向任何内容意味着a == NULL
。
但是,在任何现代计算机/操作系统上,NULL
可靠地定义为0
。只有当您编写嵌入式系统或符合非常旧的标准时,您才应该/必须使用NULL
。但是你使用C ++而不是C的事实已经确保它确实是0。