当函数的形参是变量时,函数内的操作是只对形参的操作,并不会对实参造成影响

当函数的形参是引用时,在函数内对形参操作的同时也会对实参造成影响

 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 }

 

posted on 2022-01-15 23:03  咫尺流云  阅读(67)  评论(0)    收藏  举报