C++PassingBy Reference之Swap函数的实现
2014-06-27 19:26
246 查看
如果找一个例子来将passing by reference 的概念说明白, 那无疑是应该选择swap 函数的实现了、
代码如下:
运行结果如下:
![](http://img.blog.csdn.net/20140627191059828?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这大概就是pass by reference的好处吧。 当将变量作为参数穿进去的时候, 并且想要这个函数修改参数, 并且希望函数执行完毕退出的时候,保留下函数对变量的修改, passing by reference 就ok。
pass by reference的另一个使用的使用situation就是, 当我们想要函数返回多个值的时候。 因为return 语句只允许我们返回一个值, passing output variables
就可以突破这个limitation。 例子如下:
运行结果如下:
代码如下:
#include <iostream> using namespace std; void swap(int &a, int &b) { int t = a; a = b; b = t; } int main() { int q = 3; int r = 5; swap(q, r); cout << "q " << q << endl; // q 5 cout << "r " << r << endl; // r 3 }
运行结果如下:
这大概就是pass by reference的好处吧。 当将变量作为参数穿进去的时候, 并且想要这个函数修改参数, 并且希望函数执行完毕退出的时候,保留下函数对变量的修改, passing by reference 就ok。
pass by reference的另一个使用的使用situation就是, 当我们想要函数返回多个值的时候。 因为return 语句只允许我们返回一个值, passing output variables
就可以突破这个limitation。 例子如下:
#include <iostream> using namespace std; int divide(int numerator, int denominator, int &remainder) { remainder = numerator % denominator;//求余 return numerator / denominator; //商的整数部分 } int main() { int num = 14; int den = 4; int rem; int result = divide(num, den, rem); cout << result << "*" << den << "+" << rem << "=" << num << endl; // 3*4+2=12 }
运行结果如下:
相关文章推荐
- 三种实现交换的方法,其中一个诡异的swap函数——C/C++语言(问题求助)
- 在C++中用虚函数及模版实现委托(支持自定义参数)
- 在Delphi与C++之间实现函数与对象共享
- 使用IDispatch::Invoke函数在C++中调用C#实现的托管类库方法
- 用c++函数编程实现三角形的面积
- mips汇编语言之实现swap函数
- Delphi与C++之间通过实现函数与对象共享
- 模版函数指针,C++委托的实现
- 如何在C++中实现类似Scanf的变参个数函数
- C++ 初始化函数的实现 - Ling Xu 的 C++ 技术随笔 - C++博客
- 使用IDispatch::Invoke函数在C++中调用C#实现的托管类库方法
- C++中的property库的设计与实现过程(二)——如何为属性指定get_和set_函数?
- C++中虚函数的实现机制
- C++中的虚函数到底怎么实现的?
- 在C中用struct实现C++中class的函数声明和定义
- 在C++中用虚函数及模版实现委托(支持多播)
- 在Delphi与C++之间实现函数与对象共享
- 在Delphi与C++之间实现函数与对象共享
- Delphi里实现类似于C++ strtok 的函数
- 模版函数指针,C++委托的实现-原创