C++PassingBy Reference之Swap函数的实现

来源:互联网 发布:未来软件客服电话 编辑:程序博客网 时间:2024/05/22 00:36

如果找一个例子来将passing by reference 的概念说明白, 那无疑是应该选择swap 函数的实现了、

代码如下:

#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}

运行结果如下:





0 0