问题 单项选择题

有以下程序: #include <stdio.h> #include <stdlib.h> int fun(int n) { int *p; p=(int*)malloc(sizeof(int)); *p=n; return *p; } main() { int a; a=fun(10); printf("%d\n", a+fun(10)); } 程序的运行结果是______。

A.0

B.10

C.20

D.出错

答案

参考答案:C

解析: malloc(sizeof(int))的作用是开辟一个长度为sizeof(int)存储空间,并通过强制类型转换(int*)将此存储空间的地址赋给了一个整型的指针变量p。然后执行语句*p=n,使得*p的值为10,并通过return返回此值,即a的值为10。然后在主函数中输出a+fun(10)=10+10=20。

选择题
单项选择题