实例:
#include <stdio.h>
#include <stdlib.h>
void print(void * node)
{
printf("%d\n", *(int *)node); //加星号报错,不加不报错,但是结果不对。
//必须要转换成相应类型才能对其操作
}
void main()
{
int a = 10;
print(&a);
system("pause");
}
void 关键字
当函数返回值为空时,可以使用void。void empty(int a);
当函数参数列表为空时,可以使用void。
void empty(void);
void指针的作用
void指针:void *
可以用其指代任何类型的指针。
但不能用void指针直接进行操作;只能转换成对应类型指针后,才能操作
使用方式
enum Season { Spring, Summer = 18, Autumn, Winter } season; enum Season *s = &season; void* vs = s; //printf("vs= %d\n", vs); //error 不能直接用于操作 int* ns = (int*)vs; //转换成对应的 int型指针 printf("ns= %d\n", *ns);
void指针与函数
因其可以指代任何类型的指针。所以将void指针作为函数参数时,表示接受任意类型的指针参数
void test(void* a) { printf("void* --> %d\n", * (int*)a); } main() { int m = 10; int *p = &m; test(p); }
参考自 /jjwwmlp456/article/details/80270446#void_41