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]);これは に
  • です