函数的功能是交换变量x和y中的值,并且通过正确调用返回交换的结果.能正确执行此功能的函数是

问题描述:

函数的功能是交换变量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;}
1个回答 分类:综合 2014-09-21

问题解答:

我来补答
在C++中,函数参数主要采用两种传递方式:值传递和引用传递.所谓值传递是指在调用函数时将实际参数复制一份传递到函数中,这样,在函数中如果对参数进
行修改,将不会影响到实际参数;而引用传递是指在调用函数时将实际参数的地址传递到函数中,那么,在函数中对参数所进行的修改,将影响到实际参数.
如何判断函数是值传递还是引用传递呢?这需要根据参数的数据类型来判断,如果参数的数据类型是指针类型、引用类型或数组类型,则函数是引用传递,其他情况下是值传递.因此,不仅只有引用数据类型才是按引用传递,指针和数组类型参数同样是按引用传递.
fund(int*x,int*y)是引用传递,函数内使用*x,*y实际会同时修改函数外同一地址的内容.
funb(int t)是值传递,无论函数内把参数修改成什么样子均不影响函数外的任何内容.
 
 
展开全文阅读
剩余:2000
上一页:14,16
下一页:对一下