概述
函数的参数传递指的就是形参与实参结合的过程,可以分为值传递与引用传递
值传递
当发生函数调用时,给形参分配空间,用实参的值来初始化形参,形参的改变不会影响到实参的值,也就是值的单向传递过程。
我们在C语言中曾编写过swap函数用来交换a与b的值,但在main函数中没有达到交换目的,此时采用的就是值传递。
引用传递
用引用作为形参,在函数调用过程中发生的参数传递,称为引用传递
为了实现形参的改变会对实参有效,我们需要使用引用传递。
引用是一种特殊类型的变量,可以认为是另一个变量的别名。
注意:
1.声明一个引用,必须同时进行初始化,使其指向一个已存在的对象
2.一旦一个引用被初始化后,就不能改为指向其他对象
含有可变数量形参的函数
为了编写能够处理不同数量实参的函数,c++提供了两种方案
1.如果所有实参类型相同,可以传递一个名为lnitializer_list的标准库类型
2.如果实参的类型不同,可以编写可变参数模板的类
我们在后面进行介绍