有以下程序:
#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);
程序运行后的输出结果是( )。
【正确答案】 D
【答案解析】malloc函数动态分配一个整型的内存空间,然后把函数返回的地址用(int*)强制类型转换为整型指针,再把它赋给a,b,c,即让指针变量a,b,c都指向刚申请的内存空间。所以只有最后一个赋值语句*c=3的值保留在了该空间内,因为a、b、c三个指针堂量均指向该空间,所以打印该空间内的数值为3。