传递数组给函数

数组不能赋值给数组

1
2
3
int a[3] = {1,2,3};
int b[3];
b=a;

编译器报错, 数组不能直接赋值, 可以使用std::copy()或手工循环赋值, 但是不可以直接把一个数组赋值给另外一个数组.

但是std::array和std::vector是可以的
1
2
std::array<int, 5> a = {1,2,3,4,5};
std::array<int, 5> b = a;


形式参数是一个已定义大小的数组:

1
2
void myFunction(int param[10])
{}

形式参数是一个未定义大小的数组:

1
2
void myFunction(int param[])
{}

函数而言,数组的长度是无关紧要的,因为 C++ 不会对形式参数执行边界检查。

二维数组做形参

1
2
3
4
5
6
7
8
9
10
void func1(int  iArray[][10])
{

}

int main()
{
int array[10][10];
func1(array);
}

形参声明一定要给出第二个维度的大小,否则编译不过。