1.参数夹带法
void fun(int a[], int size)
{
printf("size: %d\n", size);
}
2.数组引用传递法(缺点,实参数组大小必须和型参匹配)
void fun1(int (&a)[100])
{
printf("size: %d\n", sizeof(a));
printf("******* fun1 ******\n");
}
3.带引用 函数模版法
template<int size>
void fun2(int (&a)[size])
{
printf("size: %d\n", sizeof a);
printf("size: %d\n", size);
printf("******* fun2 ******\n");
}
4.带引用 类型扩展函数模版法
template<typename T, int size>
void fun3(T (&a)[size])
{
printf("size: %d\n", sizeof a);
printf("size: %d\n", size);
printf("******* fun3 ******\n");
}
{
printf("size: %d\n", sizeof(a));
printf("******* fun1 ******\n");
}
3.带引用 函数模版法
template<int size>
void fun2(int (&a)[size])
{
printf("size: %d\n", sizeof a);
printf("size: %d\n", size);
printf("******* fun2 ******\n");
}
4.带引用 类型扩展函数模版法
template<typename T, int size>
void fun3(T (&a)[size])
{
printf("size: %d\n", sizeof a);
printf("size: %d\n", size);
printf("******* fun3 ******\n");
}
5.不带引用 函数模版法
template<int size>
void fun4(int a[size])
{
printf("size: %d\n", size);
printf("******* fun4 ******\n");
}
6.带引用 类型扩展函数模版法
template<typename T, int size>
void fun5(T a[size])
{
printf("size: %d\n", size);
printf("******* fun5 ******\n");
}
template<int size>
void fun4(int a[size])
{
printf("size: %d\n", size);
printf("******* fun4 ******\n");
}
6.带引用 类型扩展函数模版法
template<typename T, int size>
void fun5(T a[size])
{
printf("size: %d\n", size);
printf("******* fun5 ******\n");
}