选择题
有以下程序
#include<stdio.h>
#include<stdlib.h>
main()
{ int *a,*b,*c;
a=b=c=(int *)malloc(sizeof(int));
*a=1; *b=2; *c=3;
a=b;
printf('%d,%d,%d\n',*a,*b,*c);
}
程序运行后的输出结果是______。
A、
1,2,3
B、
1,1,3
C、
2,2,3
D、
3,3,3
【正确答案】
D
【答案解析】
[考点] 预编译处理、动态分配、结构体、位运算和文件 malloc函数的作用是动态分配一个整型的内存空间,然后把函数返回的地址用(int*)强制类型转换为整型指针,再把它赋给a,b,c,即让指针变量a,b,c都指向刚申请的内存空间,因此只有最后一个赋值语句*c=3的值保留在了该空间内,因为a,b,c三个指针变量均指向该空间,所以打印该空间内的数值为3。
提交答案
关闭