使用引用传参可以实现指针类似的效果, 引用传参是指针传参的简化
#include<iostream> using namespace std; /** * 通过值传参实现两个整型变量值的交换(不能达到效果) * swap v.交换; n.交换(之物) * @param a 第一个整型变量的值 * @param b 第二个整型变量的值 */ void swap2IntegersByTransferValue(int a, int b) { int temp; temp = a; a = b; b = temp; } /** * 通过指针传参实现两个整型变量值的交换 * @param a 第一个整型变量的指针 * @param b 第二个整型变量的指针 */ void swap2IntegersByTransferAddress(int *a, int *b){ int temp; temp = *a; *a = *b; *b = temp; } /** * 通过引用传参实现两个整型变量值的交换 * 此时函数的两个形参别名分别为实参变量的别名, 因此改变形参变量的值可以相应的修改实参变量的值 * 引用作为函数参数的函数的定义方式 * returnType functionName(type1 &alias1, ..., typen &aliasn){ * functionBody; * } * @param a 第一个整型变量的引用(别名) * @param b 第二个整型变量的引用(别名) */ void swap2IntegersByTransferReference(int &a, int &b){ int temp = a; a = b; b = temp; } /** * 测试使用不同的方式实现交换两个整数的值 */ int main() { int a = 10; int b = 20; cout << "Before call the swap function, a = " << a << ", b = " << b << endl; /*swap2IntegersByTransferValue(a, b);*/ /*swap2IntegersByTransferAddress(&a, &b);*/ swap2IntegersByTransferReference(a, b); cout << "After call the swap function, a = " << a << ", b = " << b << endl; system("pause"); return 0; }