问题
单项选择题
有以下程序
int *f(int *x,int *y)
if(*x<*y)
return x;
else
return y;
main()
int a=7,b:8,*p,*q,*r;
p=&a;q=&b;
r=f(p,q);
printf("%d,%d,%d\n",*p,*q,*r);
执行后输出结果是
A.7,8,8
B.7,8,7
C.8,7,7
D.8,7,8
答案
参考答案:B
解析:本题定义了一个返回值为指针的函数f(),此函数有两个指针型的形参x和y,该函数的功能,是返回x和y指向的变量中值较小的那个指针变量。主函数中定义了两个指针变量p和q,井让它们指向了变量a和b,调用函数f(),返回指向的变量值较小的指针变量,r的值为指针变量p的值(变量a的地址),因此最后输出的 *p、*q和*r的值是7、8和7。