当函数的形参是变量时,函数内的操作是只对形参的操作,并不会对实参造成影响
当函数的形参是引用时,在函数内对形参操作的同时也会对实参造成影响
1 #include <iostream> 2 using namespace std; 3 void SwapValue(int a, int b)//在主函数之前设置自定义函数,形参是变量时的传递值 4 { 5 int tmp;//定义变量 tmp 用于a,b值交换 6 tmp = a; 7 a = b; 8 b = tmp; 9 cout << "在SwapValue()函数中:\t\ta =" << a << ",b=" << b << endl; 10 return; 11 } 12 void SwapRef(int& a, int& b)//设置两个引用a,b,形参是引用时的传递值 13 { 14 int tmp;//用于a,b值交换 15 tmp = a; 16 a = b; 17 b = tmp; 18 cout << "在SwapRef函数中:\t\ta =" << a << ",b=" << b << endl; 19 return; 20 } 21 int main() 22 { 23 int a = 10, b = 20; 24 cout << "数据交换前:\t\ta=" << a << ",b=" << b << endl << endl; 25 SwapValue(a, b);//调用SwapValue函数 26 cout << "调用SwapValu()后:\t\t a=" << a << ",b=" << b << endl;//原因是在函数中只有形参被交换,实参未被交换,因此输出值未被交换, 27 a = 10; 28 b = 20; 29 SwapRef(a, b);//调用SwapRef函数 30 cout << "调用SwapRef()后:\t\ta=" << a << ",b=" << b << endl;//输出值被交换,原因是函数的形参是引用,函数内部对形参的交换就是对实参的交换 31 return 0; 32 }

浙公网安备 33010602011771号