将指针与0或NULL进行比较有什么区别吗?

时间:2013-07-08 12:49:38

标签: c pointers

据我所知,NULL实际上不是0.所以将指针与0或NULL进行比较有什么不同吗? 进一步应该是正确的用法。谢谢!

3 个答案:

答案 0 :(得分:4)

正确用法是使用NULL:它更具可读性(p = NULL - >您知道p是指针)

答案 1 :(得分:4)

在C中,宏NULL被定义为实现定义的空指针常量,它在C99中可以可移植地表示为隐式或显式转换为类型void*的整数值0。 在C ++中,NULL是零(00L)的整数文字,传统上更倾向于表示空指针常量。

如果与指针进行比较,编译器会隐式将0转换为NULL

0NULL进行比较始终是安全的。

答案 2 :(得分:-1)

NULL不一定是0,只能用于指针。 NULL是一个宏,通常定义为(void *)0但并非总是如此。

这是指向内存中没有位置的指针。

有一本非常好的新书叫做理解和使用C指针。请阅读那个。

除了指针外,不要使用它。