为什么void指针指向任何东西?

时间:2014-03-18 22:31:48

标签: c

当某些内容被转换为void时,该值将变为NULL。但是,为什么void *指向任何数据类型?虚空指针不应该没用吗?

3 个答案:

答案 0 :(得分:6)

void指针是指向任何东西的指针。它是一个没有特定类型的通用指针。它也可以具有值NULL,在这种情况下它不指向任何东西。 要使用void指针,您必须跟踪它实际指向的内容以及何时使用它,您必须将其强制转换为适当的类型。

它们可能很危险,因为如果将它强制转换为错误类型,则会在运行时导致未定义的行为。

答案 1 :(得分:3)

  

当某些内容被转换为void时,该值将变为NULL。

不正确。指出的数据没有任何反应。

  

不应该使用无效指针吗?

void指针是C与"泛型类型"最接近的东西。并且非常有用,它允许像某些通用函数,有些通用容器等等。

答案 2 :(得分:2)

void *是一个通用对象指针。请注意,没有通用函数指针。

您可以将任何对象指针值转换为void *并返回而不会丢失值。

相关问题