下列程序的运行结果是( )。 #include <stdio.h> void fun(int *a, int *b) { int *k; k=a; a=b; b=k; } main() { int

admin2009-01-15  22

问题 下列程序的运行结果是(    )。    #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

答案2

解析 程序看上去是要实现交换两个指针的值,但是C语言中实参变量和形参变量之间的数据传递是单向的“值传递”,指针变量做函数参数也要遵循这一规则。调用函数不能企图通过改变形参指针的值而使实参指针的值也改变。所以本题的输出结果是36。
转载请注明原文地址:https://kaotiyun.com/show/1UXp777K
0

最新回复(0)