数组的两个特殊性质对我们定义和使用作用在数组上的函数有影响:不允许拷贝数组以及使用数组时会将其装换成指针。
尽管不能以值传递的方式传递数组,但是我们可以把形参写成类似数组的形式
如果我们传给 print 函数的事一个数组,则实参自动地转换成指向数组首元素的指针,数组的大小对函数的调用没有影响。
数组是以指针的形式传递给函数的,所以一开始函数并不知道数组的确切尺寸,调用者应该为此提供一些额外的信息。管理指针形参有三种常用的技术。
1,要求数组本身包含一个结束标记。
2,传递指向数组首元素和尾后元素的指针。
3,专门定义一个表示数组大小的形参。
变量可以定义为数组的引用,形参也可以是数组的引用。
形参为数组的引用时,引用形参绑定到对应的实参上,也就是绑定到数组上。
如果所有的实参类型相同,可以传递一个名为 initializer_list 的标准库类型;如果实参的类型不同,可以编写一种特殊的函数,也就是可变参数模板。
省略符形参类型,可以用它传递可变数量的实参。
initializer_list 也是一种模板类型,定义 initializer_list 对象时,必须说明列表中所含元素的类型。
initializer_list 对象中的元素永远是常量值。