0

当我浏览其他人编写的一些代码时,我遇到了以下句子,我不确定其含义。任何帮助表示赞赏。

str != ((void *)0)
4

3 回答 3

4

这一行有效地比较str了一个指针,应该是一个指针NULL

于 2012-10-04T02:57:58.750 回答
1

((void *)0) 本质上与 NULL 相同

从技术上讲,NULL 指针是 0x0

因此该语句确保指针 str 不为 NULL

编译器

于 2012-10-04T02:59:13.277 回答
0

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

在这种情况下,(void*)在 C 和 C++ 代码中广泛使用强制转换通常表明程序员并不真正理解该语言。编译器将在需要它们的许多情况下插入这些强制转换。在这种情况下,它根本不需要。

于 2012-10-04T03:12:42.857 回答