文章目录
const 修饰函数参数
一.函数参数的值传递方式(3种)
1、值传递
值传递:将实参的值拷贝给函数或方法,在函数内对形参进行操作,操作的对象是实参的拷贝,
对实参本身没有影响,在函数结束返回后,形参被丢弃释放,实参的内容不会被改变 。
拷贝的参数副本需要经过调用构造函数、拷贝、析构等过程,对于非内部类型的输入参数而言,会明显的影响程序的效率。
#include<iostream>
using namespace std;
void test(int x, int y){
int temp = x;
x = y;
y = temp;
cout << "x" << x << endl;//x = 20
cout << "y" << y << endl;//y = 10
}
int main() {
int a = 10;
int b = 20;
test(a,b);
cout << "a" << a << endl;//a = 10
cout << "b" << b << endl;//b = 20
system("pause");
return 0;
}
test(a,b);在调用过程中,函数隐含的把实参a,b的值分别传给了x,y ,函数中的操作只是对临时开辟的存储器
x,y的操作,没有对实参a,b 进行任何操作,因此啊,ab的值是不变的。
2.地址传递(指针)
由于指针也是一个值,参数为指针时,传递给被调函数的实参是一个指针的拷贝,
但这个指针指向的内容是同一个位置,故指针传递时,可以通过地址间接地改变实参的值。