什么时候在char指针上使用void指针?

时间:2018-12-26 12:29:26

标签: c pointers void void-pointers

在哪种情况下,我们应该首选空指针而不是char指针,反之亦然?

事实上,两者都可以类型转换为任何数据类型。

3 个答案:

答案 0 :(得分:6)

void指针是指向“任何类型”的指针,需要先将其转换为指向实际类型的指针。

指向char的指针是指向char的指针,它恰好具有您还可以通过其访问其他类型(的一部分)的属性。

当含义应为“任何类型”(或几种类型中的一种,等等)时,应使用void *。 (显然)访问char *或另一类型的单个字节作为原始字节时,应使用char

答案 1 :(得分:1)

当指针将引用的变量类型未知时,使用

void指针。例如,malloc()函数返回引用所分配内存的void指针。然后,您可以将指针转换为其他数据类型。

在某些情况下,您需要创建一个指针来仅存储地址。您可以在那里使用空指针。

答案 2 :(得分:-1)

更多关于代码的可读性和结构,我不想看到一个函数需要输入让我们说说指向结构体的指针并通过char *获得它的功能,如果我看到char *是字符串,我首先想到的是纯c术语,字符数组,以null结尾),另一方面带有void *,我被警告将要传递一些通用的东西,一个很好的例子是qsort函数。
 

因此,它不仅仅涉及它是否可以工作或编译,还应该可读性