为以下程序段选择最佳的语句:
#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基础课程》。