C/C++で配列の長さを取得する方法
3451 ワード
1.算術式:
#include
int
main() {
int
arr[4];
std::cout <
sizeof
( arr ) /
sizeof
( arr[0] ) <
// 4
}
または#include
int
main() {
int
arr[4];
std::cout <
sizeof
( arr ) /
sizeof
( *arr ) <
// 4
}
2. テンプレートパラメータの :#include
template
<
typename
T,
size_t
N>
inline
size_t
Count( T ( & arr )[N] ) {
return
N;
}
int
main() {
int
arr[4];
std::cout <
// 4
}
3. C++テンプレートライブラリ:#include // .
#include
int
main() {
int
arr[4];
std::cout <
decltype
( arr ), 0>::value <
// 4
}
4.テンプレートの と の :include
template
<
typename
T>
class
ComputeSize;
template
<
typename
T,
size_t
N>
class
ComputeSize {
public
:
static
const
size_t
value = N;
};
int
main() {
int
arr[4];
std::cout <
decltype
( arr )>::value <
// 4
}
5.Visual C++コンパイラ マクロ:#include
#include
int
main() {
int
arr[4];
std::cout <
// 4.
}
6.boostライブラリ:#include "boost/range.hpp"
#include
int
main(){
int
arr[4];
std::cout <
// 4
}
の は に され, (new[])では を できない.
のコードは、 でコンパイルして してみてください.コンパイラが のコードをテストしていないか、コンパイルに した は、 のページでコンパイルして できます( バージョンのVisual C++):
http://webcompiler.cloudapp.net/#include“string.h”strlen(a) の きさを めるのは です sizeof(a)/sizeof(a[0]);これは に です