问题 单项选择题

有以下程序: #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,1,3

B.2,2,3

C.1,2,3

D.3,3,3

答案

参考答案:D

解析: malloc函数动态分配一个整型的内存空间,然后把函数返回的地址用(int*)强制类型转换为整型指针,再把它赋给a,b,c,即让指针变量a,b,c都指向刚申请的内存空间。所以只有最后一个赋值语句*c=3的值保留在了该空间内,因为a,b,c 3个指针变量均指向该空间,所以打印该空间内的数值为3。

多项选择题
填空题