问题
填空题
有以下程序:
#include <stdio.h>
int *f(int*p,int*q);
main()
int m=1,n=2, *r=&m;
r=f(r,&n);printf("%d\n",*r);
int *f(int *p,int *q)
return(*p>*q)p:q;
程序运行后的输出结果是______。
答案
参考答案:B
解析: 本题中f函数的功能是返回指针p与指针q所指元素中较大的那个元素的地址,从函数调用可知,在参数传递过程中变量m的地址传给了指针p,变量n的地址传给了指针q,因为n的值2大于m的值1,所以返回的是变量n的地址。在主函数中用来接收f函数返回值的变量是指针型变量r,所以r就变成了变量n的地址,所以*r即为2。