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虚空指针查询-不知道为什么我的代码无法按预期工作:(的主要内容,如果未能解决你的问题,请参考以下文章

下拉菜单在导航栏中无法按预期工作

DebuggerDisplay属性无法按预期工作

为啥我的查询没有按预期工作?

立方体没有按预期使用openGL出现

这个 C++ 代码会一直按我的预期工作,还是不能保证执行顺序?

为啥这个回滚功能不能按预期工作