问题 单项选择题

有下列程序:
#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

解析: 本题考查指针与函数的调用。a+fun(10)相当于fun(10)+fun(10),故结果为20。两次调用fun()函数,返回值指向不同的内存单元,不会存在内存冲突的问题,也就不会出错。

单项选择题
单项选择题