获取const void的内容

kev*_*556 2 c pointers const void

我正在尝试获取const void指针指向的数据的值.我写了这个简单的例子,以获得不同的方式.但由于某种原因,它将无法工作.实际上我希望printf写"数据5和指针的地址"有人可以帮助我吗?

谢谢

这是代码

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

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

Joh*_*ica 5

data持有的地址b.%p只需通过即可打印出该地址data.&data是地址data而不是地址b.

为了得到你需要取消引用该地址的值data*data.但是有一个问题.您不能取消引用void指针,因为它们的数据类型未知.要获得该int地址的值,您需要将其转换const void *const int *第一个.然后你可以取消引用结果.

printf("data %d %p\n", *(const int *) data, data);
Run Code Online (Sandbox Code Playgroud)