A-A+
下列程序的运行结果是()。 #include <stdio.h> void fun(int
问题详情
下列程序的运行结果是()。 #include <stdio.h> void fun(int *a, int *b) { int *k; k=a; a=b; b=k; } main() { int a=3,b=6, *x=&a, *y=&b; fun(x,y); printf("%d%d",a,b);
A.6 3
B.3 6
C.编译出错
D.0 0请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:B
解析:程序看上去是要实现交换两个指针的值,但是C语言中实参变量和形参变量之间的数据传递是单向的“值传递”,指针变量做函数参数也要遵循这一规则。调用函数不能企图通过改变形参指针的值而使实参指针的值也改变。所以本题的输出结果是36。