void指针的使用

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类型指针,再对其解引

 

posted @ 2022-10-11 14:00  hxqmw  阅读(165)  评论(0)    收藏  举报