参数传递
2023年12月15日 2023年12月18日
每次调用函数时,都会重新创建它的形参,并用传入的实参对形参进行初始化
形参初始化的机理与变量初始化一样
根据形参是否为引用, 分两种情况讨论
值传递
passed by value
将实参的值拷贝给形参; 形参和实参是两个不同的实体, 拥有相同的值
引用传递
passed by reference
形参是对实参的引用, 二者对应同一个实体
引用传递的好处:
- 避免拷贝, 减少开销
- 用来实现多个返回值
如果函数无须改变实参的值,最好将形参声明为拥有底层const的引用
形参为指针类型
C语言中常常使用
C++中建议使用引用传递代替
形参类型是数组时, 会被转换成指向数组首元素的指针
1void print(const int *); 2void print (const int[]); 3void print(const int[10]);
以上3个声明等价, 编译器只检查传入的参数是否为const int *