void指针是一种不明确类型的指针,任何指针都可转换为void指针。
void指针只保存了指针的值并没有记录指针指向对象的类型。
因此在用到对void指针解引时,需要先把void指针转换成原本的数据类型。
int n = 500; //定义一个int变量 int * p = &n; //定义int类型指针 void * pv = p; //定义void指针,只保存了p的值(即n的内存首地址) //错误的写法 printf("%d\n", *pv); //这里会报错,因pv指针没有明确数据类型,因此也不知道需要取多少字节的数据 //正确写法 printf("%d\n", *( (int*)pv ) ); //先把pv指针转为int类型指针,再对其解引
标签:pv,int,void,printf,数据类型,使用,指针 From: https://www.cnblogs.com/sagerking/p/16779003.html