问题
单项选择题
有下列程序:
#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()函数,返回值指向不同的内存单元,不会存在内存冲突的问题,也就不会出错。