函数的功能是交换变量x和y中的值,并且通过正确调用返回交换的结果.能正确执行此功能的函数是为什么是 fund(int*x,int*y){*x=*x+*y;*y=*x-*y;*x=*x-*y;}而不是 funb(int t){t=x;x=y;y=t;}
网友回答
这里是用指针做的,如果x,y定义为局部变量的话在fund()这个函数内不能使用,所以就需要通过形参和实参的传递来实现,而如果只是把函数定义成fund(int t,int z)就只是按值传递,函数调用结束后下x,y的值没有真正的互换,互换的只是只是函数形参的值,所以这里用指针来实现,把*x和*y所指向的地址的值互换,这样在函数调用结束后x,y才真正改变了.