使用引用傳參可以實現指針類似的效果, 引用傳參是指針傳參的簡化
#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; }