2012-10-04 41 views
0

当我在其他人编写的代码中漫步时,我偶然发现了一个我不确定的含义。任何帮助表示赞赏。指向常量常量的空指针

str != ((void *)0) 

回答

4

此行比较str,假想一个指针,具有NULL指针,有效。

+0

谢谢,这是我的原始猜测。只是想确定。 – Jun

1

((无效*)0)本质上是一样的NULL

技术上,NULL指针为0x0

所以这种说法是确保指针,STR,不为空

编译器

0

这是测试str是否为零或非零的冗余方式。

由于在这种情况下,广泛使用的(void*)蒙上C和C++代码往往是一个迹象,表明程序员并没有真正理解的语言。编译器会在许多需要的情况下插入这些强制转换。在这种情况下,根本不需要。