📜  C测验– 111 |问题1

📅  最后修改于: 2021-05-26 01:18:37             🧑  作者: Mango

为以下程序段选择最佳的语句:

#include 
  
int main()
{
 int var;  /*Suppose address of var is 2000 */
  
 void *ptr = &var;
 *ptr = 5;
 printf("var=%d and *ptr=%d",var,*ptr);
               
 return 0;
}

(A)将打印“ var = 5和* ptr = 2000”
(B)将打印“ var = 5和* ptr = 5”
(C)它将打印“ var = 5和* ptr = XYZ”,其中XYZ是一些随机地址
(D)编译错误答案: (D)
说明:以上代码段中的关键点是对void指针的取消引用。请注意,不允许取消引用void指针,因为void是不完整的数据类型。分配值5的正确方法是,首先键入void指针,然后再使用它。因此,而不是* PTR的,应该使用*(INT *)PTR。正确答案是d。
这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。