函数的功能是交换变量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/12/04 16:52:22
函数的功能是交换变量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)是值传递,无论函数内把参数修改成什么样子均不影响函数外的任何内容.