函数传递参数常见的有3种形式:传值、传引用、传const引用
传值
调用函数时传递的参数并不会真正的进入函数内部,而是函数拷贝了参数的值,拿这这个值创建出一个函数内部的变量在使用。
传引用
void fun(int& var);
函数内部使用的就是传递给函数的参数本身;
函数内部修改了参数,函数外部会得到这种改变;
传const引用
void f(const A& a);
如果只是想在函数内读参数的值,而不想修改参数的值,可以传递const引用。
示例
#include "iostream"
using namespace std;
/**
* 调用函数时传递的参数并不会真正的进入函数内部,而是函数拷贝了参数的值,拿这这个值创建出一个函数内部的变量在使用。
* @param var
*/
void f1(int var) {
var = 2;
}
/**
* 函数内部使用的就是传递给函数的参数本身;函数内部修改了参数,函数外部会得到这种改变;
* @param var
*/
void f2(int& var) {
var = 2;
}
/**
* 如果只是想在函数内读参数的值,而不想修改参数的值,可以传递const引用。
* @param var
*/
void f3(const int& var)
{
// var = 1;
cout << var << endl;
}
int main() {
int a = 1;
int b = 1;
int c = 3;
//f1创建a的副本v,在f1内部使用
f1(a); //1
f2(b); //2
f3(c); //3
//a的值不会变化
cout << a << endl;
cout << b << endl;
return 0;
}