代码之家  ›  专栏  ›  技术社区  ›  Jun

指向文字常量的void指针

  •  0
  • Jun  · 技术社区  · 13 年前

    当我浏览别人写的一些代码时,我发现了下面一句话,我不确定它的意思。感谢您的帮助。

    str != ((void *)0)
    
    3 回复  |  直到 13 年前
        1
  •  4
  •   Alexey Frunze    13 年前

    这行正在比较 str ,据说是一个指针,带有 NULL 指针,有效。

        2
  •  1
  •   woody993    13 年前

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

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

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

    编译器

        3
  •  0
  •   user207421    13 年前

    这是测试是否 str 为零或非零。

    在这种情况下 (void*) C和C++代码中的强制转换通常是程序员没有真正理解该语言的迹象。编译器会在许多需要强制转换的情况下插入这些强制转换。在这种情况下,根本不需要它。