考虑以下函数:
void func1(int unsized_array[]){}
void func2(int sized_array[10]){}
void func3(int *pointer){}
Run Code Online (Sandbox Code Playgroud)
根据结果:
std::cout << std::is_same<decltype(func1), decltype(func2)>::value << std::endl;
std::cout << std::is_same<decltype(func2), decltype(func3)>::value << std::endl;
std::cout << std::is_same<decltype(func3), decltype(func1)>::value << std::endl;
Run Code Online (Sandbox Code Playgroud)
这3个函数的类型是一样的。同样在函数内部func2, sizeof运算符不提供所有组合的数组元素的大小。
那么将大小数组作为函数参数(如func2)的目的是什么?