1. 산술 표현식 :
#include <iostream>
int
main() {
int
arr[4];
std::cout <<
sizeof
( arr ) /
sizeof
( arr[0] ) << std::endl;
// 输出4
}
|
또는
#include <iostream>
int
main() {
int
arr[4];
std::cout <<
sizeof
( arr ) /
sizeof
( *arr ) << std::endl;
// 输出4
}
|
2. 기능 템플릿 매개 변수가 자동으로 추론 :
#include <iostream>
template
<
typename
T,
size_t
N>
inline
size_t
Count( T ( & arr )[N] ) {
return
N;
}
int
main() {
int
arr[4];
std::cout << Count( arr ) << std::endl;
// 输出4
}
|
3. 표준 C ++ 템플릿 라이브러리 :
#include <type_traits> // 注意包含此头文件.
#include <iostream>
int
main() {
int
arr[4];
std::cout << std::extent<
decltype
( arr ), 0>::value << std::endl;
// 输出4
}
|
4. 자동 타입 추론의 템플릿은 공개 :
include <iostream>
template
<
typename
T>
class
ComputeSize;
template
<
typename
T,
size_t
N>
class
ComputeSize<T[N]> {
public
:
static
const
size_t
value = N;
};
int
main() {
int
arr[4];
std::cout << ComputeSize<
decltype
( arr )>::value << std::endl;
// 输出4
}
|
5. 비주얼 C의 ++의 컴파일러 사전 정의 된 매크로 :
#include <cstdlib>
#include <iostream>
int
main() {
int
arr[4];
std::cout << _countof( arr ) << std::endl;
// 输出4.
}
|
6. 부스트 라이브러리 :
#include "boost/range.hpp"
#include <iostream>
int
main(){
int
arr[4];
std::cout << boost::size( arr ) << std::endl;
// 输出4
}
|
상기 방법은 정적 배열에 적합한 동적 배열은 (새로운 새 [])의 요소 수를 얻을 수 없다.
위의 코드는, 당신은 컴파일하고 위의 테스트 코드를하거나 컴파일러가 컴파일하고 (다음 페이지의 최신 버전을 실행, 컴파일 실패하지 않는 있는지 확인하기 위해 자신을 실행할 수 있습니다 비주얼 C ++를 )
http://webcompiler.cloudapp.net/
-
사용법 #include "string.h"
나 strlen (a)에 찾을 문자 배열의 크기는
-
를 sizeof (a) /를 sizeof (a [0])이 거의 보편적
-