按值传递函数参数拷贝参数的实际值到函数的形式参数的方法的调用。在这种情况下,参数在函数内变化对参数没有影响。
默认情况下,C++使用调用按值传递参数。在一般情况下,这意味着,在函数内代码不能改变用来调用函数的参数值。考虑函数swap()定义如下。
// function definition to swap the values. void swap(int x, int y) { int temp; temp = x; /* save the value of x */ x = y; /* put y into x */ y = temp; /* put x into y */ return; }
现在,让我们通过使实际值调用函数swap()如以下示例:
#include <iostream> using namespace std; // function declaration void swap(int x, int y); int main () { // local variable declaration: int a = 100; int b = 200; cout << "Before swap, value of a :" << a << endl; cout << "Before swap, value of b :" << b << endl; // calling a function to swap the values. swap(a, b); cout << "After swap, value of a :" << a << endl; cout << "After swap, value of b :" << b << endl; return 0; }
当上述代码被放在一个文件中,编译和执行时,它产生了以下结果:
Before swap, value of a :100 Before swap, value of b :200 After swap, value of a :100 After swap, value of b :200
这表明它的值没有改变,虽然它们只是在函数内部改变。