📜  C |指针基础问题14

📅  最后修改于: 2021-05-25 18:47:21             🧑  作者: Mango

预测以下程序的输出

#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基础课程》。