问题 单项选择题

有以下程序
#include <stdio.h>
#include <stdlib.h>
int fun(int n)
int *p;
p=(int*)malloc(sizeof(int));
*p=n; return *p;

int a;
a=fun(10); printf("%d\n",a+fun(10));

程序的运行结果是______。
A) 0B) 10C) 20D) 出错

答案

参考答案:C

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

单项选择题
单项选择题