fun(&y, &x);函数内容是什么啊?
原题是不是:
下列程序段的输出结果是:( ).
void fun( int *x, int *y)
{ printf("%d %d",*x,*y);*x=3;*y=4;}
main( )
{ int x=1, y=2;
fun(&y, &x);
printf("%d %d", x, y);
}
应该选择C
fun(&y, &x);把y的地址传递给x,把x的地址传递给y,即运行到printf("%d %d",*x,*y);时x=2,y=1;
然后*x=3;*y=4;给x,y赋值,但是x,y在网下传时,想,y的值是交换了的(即fun(&y, &x);把y的地址传递给x,把x的地址传递给y),所以运行到x=3;*y=4;时其实主函数中的x=4,y=3的,所以,printf("%d %d", x, y);执行的结果是x=4,y=3,所以选c
v考查的是参数传递,及指针应用。
fun(&y,&x); 参数为地址传送,void fun(int *x,int *y)接收的是(x=&y,y=&x) 输出是y x也就是2 1
将地址赋的值更改为*x=3,*y=4;相当于主函数的y=3,x=4.
返回主函数输出的是4 3
故最后输出结假果:2143 答案是A