c++之参数传递

来源:互联网 发布:匿名免费发短信软件 编辑:程序博客网 时间:2024/06/11 15:57
通常使用的“按指传递”,函数内的操作的实际上是输入参数的一个副本(即函数创建了一个临时变量,其值与输入参数完全相同),对该副本的操作不会影响输入参数的值。而“按引用传递”,可以理解为副本是一个引用变量,该副本与输入参数共享存储区。因此函数内对副本的修改相当于对输入参数进行修改。
 当输入参数是抽象数据类型时,采用“按引用传递”可以避免创建副本时构造函数的调用(以及函数返回时析构函数的调用)。因此按引用传递会比按值传递更有效率。
 注意:“按引用返回”,对于返回值有一定的限制:即返回值不能是局部变量,必须能生存在函数作用域之外。譬如:
 例子:
int & f(int& a){int b = a;b++;return b;}
 会出错,因为b是局部变量,引用返回值必须可以再在调用函数外生存。
 

 下面是个完整的案例说明参数按值传递和按引用传递的区别:

0 0
原创粉丝点击