函数的功能是交换变量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;}
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 12:42:48
![函数的功能是交换变量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;}](/uploads/image/z/6791723-35-3.jpg?t=%E5%87%BD%E6%95%B0%E7%9A%84%E5%8A%9F%E8%83%BD%E6%98%AF%E4%BA%A4%E6%8D%A2%E5%8F%98%E9%87%8Fx%E5%92%8Cy%E4%B8%AD%E7%9A%84%E5%80%BC%2C%E5%B9%B6%E4%B8%94%E9%80%9A%E8%BF%87%E6%AD%A3%E7%A1%AE%E8%B0%83%E7%94%A8%E8%BF%94%E5%9B%9E%E4%BA%A4%E6%8D%A2%E7%9A%84%E7%BB%93%E6%9E%9C.%E8%83%BD%E6%AD%A3%E7%A1%AE%E6%89%A7%E8%A1%8C%E6%AD%A4%E5%8A%9F%E8%83%BD%E7%9A%84%E5%87%BD%E6%95%B0%E6%98%AF%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AF+fund%28int%2Ax%2Cint%2Ay%29%7B%2Ax%3D%2Ax%2B%2Ay%3B%2Ay%3D%2Ax-%2Ay%3B%2Ax%3D%2Ax-%2Ay%3B%7D%E8%80%8C%E4%B8%8D%E6%98%AF+funb%28int+t%29%7Bt%3Dx%3Bx%3Dy%3By%3Dt%3B%7D)
函数的功能是交换变量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(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(int*x,int*y){*x=*x+*y;*y=*x-*y;*x=*x-*y;}而不是 funb(int t){t=x;x=y;y=t;}
在C++中,函数参数主要采用两种传递方式:值传递和引用传递.所谓值传递是指在调用函数时将实际参数复制一份传递到函数中,这样,在函数中如果对参数进
行修改,将不会影响到实际参数;而引用传递是指在调用函数时将实际参数的地址传递到函数中,那么,在函数中对参数所进行的修改,将影响到实际参数.
如何判断函数是值传递还是引用传递呢?这需要根据参数的数据类型来判断,如果参数的数据类型是指针类型、引用类型或数组类型,则函数是引用传递,其他情况下是值传递.因此,不仅只有引用数据类型才是按引用传递,指针和数组类型参数同样是按引用传递.
fund(int*x,int*y)是引用传递,函数内使用*x,*y实际会同时修改函数外同一地址的内容.
funb(int t)是值传递,无论函数内把参数修改成什么样子均不影响函数外的任何内容.