下列程序段的输出结果是:( ). void fun( int *x, int *y) { printf("%d %d",*x,*y);*x=3;*y=4;} main( )
main(){intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}A、2112B、1234C、2143D、1212...
main( )
{ int x=1, y=2;
fun(&y, &x);
printf("%d %d", x, y);
}
A、2 1 1 2
B、1 2 3 4
C、2 1 4 3
D、1 2 1 2 展开
{ int x=1, y=2;
fun(&y, &x);
printf("%d %d", x, y);
}
A、2 1 1 2
B、1 2 3 4
C、2 1 4 3
D、1 2 1 2 展开
2个回答
展开全部
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
原题是不是:
下列程序段的输出结果是:( ).
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
追问
小菜鸟 自学的 为什么还会有 4,3输出啊
追答
首先程序入口是:main( )函数,然后声明了变量x=1, y=2; 下一步fun(&y, &x);程序就会跳转到fun这个函数中去,fun函数中y的地址传递给x,把x的地址传递给y,此时 x=2,y=1; 所以fun函数中输出2,1.然后*x=3;*y=4;给x,y赋值,但是fun(&y, &x);是把y的地址传递给x,把x的地址传递给y),所以运行到x=3;*y=4;时其实主函数main中的x=4,y=3的,然后回到main函数中,输出的就是4,3。
好好研究一下fun函数。
void fun( int *x, int *y)
{
printf("%d %d",*x,*y);
*x=3;
*y=4;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询