C |指针基础|问题14

预测以下程序的输出

null

#include<stdio.h>
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<stdio.h>

int main()
{
    int a = 12;
    void *ptr = (int *)&a;
    printf("%d", *(int *)ptr);
    getchar();
    return 0;
}

这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享