C++中传递参数的方式有三种:
传参数的值,称为值传递,简称传值;
传参数的地址,称为地址传递,简称为传址;
引用传递,简称为传引用。
相应的函数也就是传值调用,传址调用和传引用调用
“值传递”:形参实际上是实参的一份拷贝,所以func1传递时不会改变外部变量实参的值,所以n的值仍成为100。
“指针传递”:由于func2函数体内的x是指向外部变量n的指针,改变该指针的内容将导致n的值改变,所以n的值成为200。
“引用传递”:由于func3函数体内的x是外部变量n的引用,x和n是同一个东西,改变x等于改变n,所以n的值成为200。
#include <stdio.h>
#include <iostream>
using namespace std;
void func1(int x);
void func2(int *x);
void func3(int &x);
void main(){
int num = 100;
cout << num << endl;
func1( num );
cout << num << endl<< endl;
num = 100;
func2( &num );
cout << num << endl<< endl;
num = 100;
int &num_yy = num;
func3( num_yy );
cout << num << endl;
return ;
}
void func1(int x){
x = x + 100;
}
void func2(int *x){
*x = *x + 100;
}
void func3(int &x){
x = x + 100;
}
输出:
100
100
200
200