一、数组有两个特殊性质:
1.不能复制数组。因此不能编写使用数组类型形参的函数。
2.使用数组名字时,数组名会自动转化为指向其第一个元素的指针 。因此,处理数组的函数通常通过操纵指向数组中的元素的指针来处理数组。
一下三种声明是等价的:
void print(int*){} void print(int[]){} void print(int[10]){}
上述三个形参类型都是int*
二、但如果形参是数组的引用,编译器不会将数组实参转化为指针,而是传递数组的引用本身,此时,数组大小成为形参和实参类型的一部分,编译器会检查数组实参的大小和形参的大小是否匹配。
void print(int (&arr)[10]){}
三、如void print(int (a*)[10])