费县新开盘的楼房:CCCCC问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/06 20:07:46
以下程序运行后的输出结果是 【13】
void swap(int x,int y)
{ int t;
t=x;x=y;y=t;
printf("%d %d ",x,y);
}
main()
{ int a=3,b=4;
swap(a,b);
printf("%d %d\n",a,b);
}
怎么答案会是4 3 3 4怎么函数会调用了之后返回但是VOID无参啊不用返回的啊能讲下为什么吗?

先执行swap
4 3 是swap输出的,因为x,y是形参,所以输出x,y后a,b没改变
再执行主函数的printf,a=3,b=4,输出为 3 4
要想在子函数里实现交换,必须用指针
void swap(int *x,int *y)
{
int t;
t=*x;*x=*y;*y=t;
}

main()
{
int a=3,b=4;
swap(&a,&b);
printf("%d,%d",a,b);
}

有printf阿
这个可以输出的