预测以下程序的输出
#include
int main()
{
int a = 12;
void *ptr = (int *)&a;
printf("%d", *ptr);
getchar();
return 0;
}
(A) 12
(B)编译器错误
(C)矮子时间错误
(D) 0答案: (B)
说明: “ printf(“%d”,* ptr);”行中有编译器错误。
void *类型指针不能被取消引用。在取消引用之前,我们必须对它们进行类型转换。
以下程序可以正常工作并打印12。
#include
int main()
{
int a = 12;
void *ptr = (int *)&a;
printf("%d", *(int *)ptr);
getchar();
return 0;
}
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。