获取 const void 的内容

get the content of a const void

我正在尝试获取由 const void 指针指向的数据的值。 为了获得不同的方式,我写了这个简单的例子。 但出于某种原因,它不会 work.Actually 我希望 printf 写 "data 5 and the address of the pointer " 有人可以帮我吗?

谢谢

这是代码

#include <stdio.h>
#include <stdlib.h>

int main(){
    const void * data;
    int b = 5;
    data = &b;
    printf("data %d %p ",&data,&data);
}

data 保存 b 的地址。要使用 %p 打印出该地址,只需传递 data&datadata 的地址而不是 b 的地址。

要获取该地址的值,您需要使用 *data 取消引用 data。但有一个陷阱。您不能取消引用 void 指针,因为它们的数据类型未知。要在该地址获得 int 值,您需要先将 const void * 转换为 const int *。然后你可以取消引用结果。

printf("data %d %p\n", *(const int *) data, data);