문자열 배열의 길이를 가져옵니다

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/

 

 

  1.  사용법 #include "string.h"

    나 strlen (a)에 찾을 문자 배열의 크기는

  2. 를 sizeof (a) /를 sizeof (a [0])이 거의 보편적

  3.  

추천

출처www.cnblogs.com/h694879357/p/11762538.html