我正在尝试获取 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);
}
最佳答案
data
保存b
的地址。要使用 %p
打印该地址,只需传递 data
即可。 &data
是data
的地址,而不是b
的地址。
要获取该地址处的值,您需要使用 *data
取消引用 data
。但有一个问题。您无法取消引用 void
指针,因为它们的数据类型未知。要获取该地址处的 int
值,您需要首先将 const void *
转换为 const int *
。然后您可以取消引用结果。
printf("data %d %p\n", *(const int *) data, data);
关于c - 获取 const void 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37240869/