问题
单项选择题
下列程序的输出结果是( )。 #include<stdio.h> void fun(int*a,int*b) { int *k; k=a;a=b;b=k;} main() { int a=1,b=2,*x=&a,*y=&b; fun(x,y); printf("%d%d",a,b); }
A.2 1
B.1 2
C.编译出错
D.0 0
答案
参考答案:B
解析: 本题考查函数凋用时的参数传递。分析题目可知fun函数的形参是指向实参的指针,但main()函数中调用fun()函数时,实参是指引变量x、y(分别为指向a和b的指针)。a、b的值在函数调用前后未发生变化,因而a=1,b=2,即输出12。