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)
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)
| 归档时间: |
|
| 查看次数: |
1447 次 |
| 最近记录: |