[单选题]运行下列程序后,输出结果是()
void fun (int *x,int *y)
{printf("%d,%d,",*x,*y);*x=1 , *y=3;}
main()
{int x=1,y=2;
fun(&y,&x);printf("%d,%d",x,y);
}

A
1,2,3,3
B
1,2,3,2
C
2,1,1,3
D
2,3,1,2
正确答案:C
题目解析
main( )函数,然后声明了变量x=1, y=2; 下一步fun(&y, &x);程序就会跳转到fun这个函数中去,fun函数中y的地址传递给x,把x的地址传递给y,此时 x=2,y=1; 所以fun函数中输出2,1;然后*y=3,*x=1;给x,y赋值,但是fun(&y, &x);是把y的地址传递给x,把x的地址传递给y),所以运行到*x=3;*y=1;时其实主函数main中的x=1,y=3的,然后回到main函数中,输出的就是1,3。
扫描二维码
免费搜题、免费刷题、免费查看解析