求一个数组长度的方法:
1、定义了一个int变量进行计数。
2、定义宏操作
3、使用模板
#include <iostream>
#include <string>
using namespace std;
#define Arr_Size(x) (sizeof (x)) / (sizeof *(x))
template <class T>
inline size_t arr_size(T& array)
{
return (sizeof(array) / sizeof(*array));
}
using namespace std;
int main()
{
string a[] = {"dgdf4 35", "dgdf435", "dgf435",
"dgdf435", "dd35", "d35"
};
char b[][20] = {"1234567890ABCDEF", "dgdf435", "dgf435",
"dgdf435", "dd35", "d35"
};
char c[3][4] =
{ {1, 2, 3, 4},
{22, 33, 44, 55},
{1, 2, 3, 4},
};
cout << sizeof(a) / sizeof(*a) << endl;
cout << Arr_Size(b) << endl; // 用宏实现,又违背了尽量用内联
cout << arr_size(c) << endl; // 要用模版实现
cout << arr_size(c[0]) << endl; // 要用模版实现
return 0;
}
