C虚空指针查询-不知道为什么我的代码无法按预期工作:(
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C虚空指针查询-不知道为什么我的代码无法按预期工作:(相关的知识,希望对你有一定的参考价值。
有人可以向我解释为什么printf(“%d \ n”,(int *)p [0])不能打印10吗?
void *p[10] = NULL;
int a = 10;
p[0] = &a;
printf("%d\n", (int *)p[0]);
答案
%d
对应的参数必须是int
,但是p[0]
是指针,而不是int
。您需要使用*
运算符对其进行取消引用。
printf("%d\n", *(int *)p[0]);
另一答案
因为您将数组中的指针解释为指向int((int *)p[0]
)的指针,但没有对其进行解引用,所以请改为*(int *)p[0]
以上是关于C虚空指针查询-不知道为什么我的代码无法按预期工作:(的主要内容,如果未能解决你的问题,请参考以下文章