已经第二次遇到则个问题了,对于整型数组长度的求解,不像字符型数组求解长度那么简单,用strlen()函数或者通过'\0'的判断来求解。
如果不是利用函数来求解整型的长度,我们可以采用length = sizeof(array)/sizeof(int)求解,如下实例:
int main()
{
int array[] = {1, 2, 3, 4, 5};
// 求解数组array的长度
int length = sizeof(array)/sizeof(int);
cout<<length<<endl;
system("pause");
return 0;
}
但,如果通过函数求解整型的长度则是不可取的,因为数组作为参数传递到函数中,传递的是一个指针,所以无法求解出其长度。
下面是两种不同的方法求解整型数组长度,一种是宏定义方法,一种是模板方法。
1. 宏定义方法
#define ArraySize(array) (sizeof(array)/sizeof(int))
2. 模板方法
template <typename T, int size>
int length(const T (&array)[size])
{
return size;
}