在C++中,参数传递的方式是“实虚结合”。

  • 按值传递(pass by value)
  • 地址传递(pass by pointer)
  • 引用传递(pass by reference)

按值传递的过程为:首先计算出实参表达式的值,接着给对应的形参变量分配一个存储空间,该空间的大小等于该形参类型的,然后把实参表达式的值一一存入到形参变量分配的存储空间中,成为形参变量的初值,供被调用函数执行时使用。这种传递是把实参表达式的值传送给对应的形参变量,故称这种传递方式为“按值传递”。

使用这种方式,调用函数本身不对实参进行操作,也就是说,即使形参的值在函数中发生了变化,实参的值也完全不会受到影响,仍为调用前的值。

 1 /* 
 2   pass By value 
 3 */  
 4 #include <iostream>  
 5 using namespace std;  
 6 void swap(int,int);  
 7 int main()  
 8 {  
 9     int a = 3, b = 4;  
10     cout << "a = " << a << ", b = "  
11     << b << endl;  
12     swap(a,b);  
13     cout << "a = " << a << ", b = "  
14     << b << endl;  
15     return 0;  
16 }  
17 void swap(int x, int y)  
18 {  
19      int t = x;  
20      x = y;  
21      y = t;  
22 }  
pass By value

相关文章: