1. 程式人生 > >C++獲取陣列長度的方法

C++獲取陣列長度的方法

在不使用其他容器的情況下,用sizeof關鍵字來獲取陣列長度:

template <class T>
int length(T& a) {
	return sizeof(a) / sizeof(a[0]);
}

注意,目前就發現上面這一種方法,使用時直接用length(arr)即可,其中arr可以是任何型別。

下面列舉的都會出錯

//錯誤一
template <class T>
int length(int& a) {
	return sizeof(a) / sizeof(a[0]);
}
//錯誤二
int length(int& a) {
	return sizeof(a) / sizeof(a[0]);
}
//錯誤三
int length(int *a) {
	return sizeof(a) / sizeof(a[0]);
}