问题 单项选择题

下列程序的输出结果是( )。
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);

A.2 1 4 3

B.1 2 1 2

C.1 2 3 4

D.2 1 1 2

答案

参考答案:C

解析: 当执行fun函数时因为参数传递时是地址传递,因此形参值的改变会影响实参中的数,在执行fun函数时先输出12,接着把*x赋3,*y赋4,此时带回主函数中,输出的值为3 4。

填空题
单项选择题