STEP 4 - 配列
 │
 ├ 配列の宣言配列要素の参照配列の注意多次元配列配列の初期化
   ├ 一次元配列の初期化
   └ 二次元配列の初期化

猿でも解る C言語講座

Written by Yuki.
http://ftc.suki.net/

<配列の宣言>  型が同じで、共通の名前によって参照される変数の並びのこと。  型宣言子 配列名[要素数];  nt u[5]; ' VBのような最大値ではなく、要素の個数を書く。    ↑要素5の配列 ' つまり、VBの記述 +1の数字を書く事になる。  char ch[100]; ' 例えばこの場合、0〜99番までのキャラ型配列になる。
<配列要素の参照>  []内の添え字により、参照する要素を指定する。  2番目の要素に数値を代入する。  u[1]=100; ' 宣言時以外は要素の番号で指定する。この場合、2番目に100を代入。  printf("%d\n",u[1]); ' 2番目の要素を表示。
<配列の注意>  (1)配列の添え字は整数型の定数・変数であること。    int a[10];    i=3;    a[i]=10; ' a[3]に 10を代入。    char ch=4;    a[ch]=20; ' a[4]に 20を代入。    ※float等は使えない。必要な時は型キャストする。  (2)添え字は宣言した要素の範囲内であること。    int a[5]; ' a[0]〜a[4]を宣言。    a[10]=10; ' 添え字が範囲外。    a[-1]=-10; ' 添え字が負数。    ※範囲内かどうかチェックされない場合があるので、ループ等で添え字を操作する時は注意が必要。    (チェックされなかった場合、実行時に不正な処理で強制終了になり易い)
<多次元配列>  要素数の指定が複数ある配列。  型指定子 配列名[行要素数][列要素数];  int a[3][4]; ' 3×4の二次元配列  char ch[5][10]; ' 基本的には、5行×10文字。文字を扱う時に重要。  ※要素を追加して行く事によって、より多くの次元を持つ配列を宣言できるが、   その分、考え方が複雑になる。また、メモリを加速度的に大量消費してしまう。
<配列の初期化>  (1)一次元配列の初期化    型指定子 配列名[要素数]={定数式1,定数式2,…}; ' 初期化する定数を中括弧で囲む。    ※一つ一つの定数はカンマで区切り、対応するそれぞれの要素を初期化する。    一次元配列を初期化するケースでは、配列の要素数を省略することができる。    int a[]={1,2,4,8,16,32,64,128};       ↑8が自動的に入る。    ※コンパイル時に初期化する定数の個数を数え、配列の要素数として扱う。     こうすると初期化する定数の個数を変更しやすくなり、     さらに初期化する定数の個数を数え間違える事を回避できる。    ・要素数と初期化定数の個数が異なる場合     初期化定数が多い場合     int a[3]={0,1,2,3,4}; ' 「初期化子の数が多多すぎます」となりエラーが出る。     初期化定数が少ない場合     int a[8]={0,1,2,3,4}; ' a[0]〜a[7]が用意され、足りない部分には'0'が入る。 ' この場合は、a[0,1,2,3,4,0,0,0]となる。  (2)二次元配列の初期化    型指定子 配列名[行要素数][列要素数]={ ' 全体を中括弧で括る。      {定数00,定数01,…定数0n}, ' 行毎に列要素を初期化。      {定数10,定数11,…定数1n},      {定数m0,定数m1,…定数mn}    }; ' 全体を括る中括弧。この配列は a[m][n]である。    ※二次元配列を初期化する時、要素数を省略できる(但し行要素のみ)。    int a[][4]={ ' コンパイル時に、初期化子の数と列要素数から      {0,1,2,3}, ' 行要素数を割り出す。この場合は a[3][4]になる。      {4,5,6,7},      {8,9,10,11}    };    ※行要素を囲む中括弧は省略可能。二次元配列を初期化する時は、     行要素毎に改行して、視覚的に分かり易く記述する。
← ← Back to BeforeStep Go to NextStep → →