您的位置:首页 > 编程语言 > C语言/C++

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

2014-06-27 19:26 246 查看
如果找一个例子来将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
}


运行结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: