配列宣言により配列内に作成されるデータの入れ物である配列変数の数と配列変数に格納する数値の数の関係をしらべてみましょう

ソーラー「ここでint hairetubox [5] ={1,2,3};のように


配列宣言により生成される配列変数の数

(この場合5)


より配列変数に代入する数値が少ない場合は

(この場合1,2,3)


どのように数値が格納されていくかな。


ははっ


次のプログラムをみて確かめていきましょう。」


マックス「ソーラーさ~~~ん💖💖💖_(^^)/ 


ソーラー「はい、ソーラーです。


今日もはりきって解説しちゃうぞ


今の状態は次のプログラムのように表せます


#include <stdio.h>


int main(void)

{

int hairetubox [5] ={1,2,3};


printf("%d\n",hairetubox [0]);

printf("%d\n",hairetubox [1]);

printf("%d\n",hairetubox [2]);

printf("%d\n",hairetubox [3]);

printf("%d\n",hairetubox [4]);

return 0;

}

コンパイル結果


1

2

3

0

0


このプログラムでは


hairetuboxの配列宣言


int hairetubox [5] ={1,2,3};

により


配列hairetubox [5] のなかに


格納する数値のいれものである

int型の配列変数

hairetubox [0]

hairetubox [1]

hairetubox [2]

hairetubox [3]

hairetubox [4]


が5つ生成されますが


int hairetubox [5] ={1,2,3};

右辺の{1,2,3}のように配列変数に格納する数値が


1,2,3の3つしかない場合


{1,2,3}の左端の1から


0番目の配列変数hairetubox [0]

1番目の配列変数hairetubox [1]

2番目の配列変数hairetubox [2]


へと順番に


hairetubox [0]には1

hairetubox [1]には2

hairetubox [2]には3


hairetubox=1;

hairetubox=2;

hairetubox=3;



と数値が格納されていきます


そして


格納する数値がなくなれば


のこりの入れ物


hairetubox [3]

hairetubox [4]


には


hairetubox [3]=0;

hairetubox [4]=0;


のように0が格納されていきます。


このように


int hairetubox [5] ={1,2,3};


が実行された場合


配列hairetubox [5]において数値は


配列内に作成された


0番目の配列変数から順番に格納されていき


配列の中の配列変数の数(要素数と一致します)が


格納する数値より多い場合は


数値が格納されずあまった配列変数には0が代入されます。」


マックス


「はははっ 


わさわさ

 わさわさ

さわさわ

 さわさわ 」


ただいま マックス プログラムを


さわさわ


いじっています。


マックス

「ここで逆に


次のプログラムのように


#include <stdio.h>


int main(void)

{

int hairetubox [2] ={1,2,3};

printf("%d\n",hairetubox [0]);

printf("%d\n",hairetubox [1]);

return 0;

}


int hairetubox [2] ={1,2,3};により作成される配列変数の数(この場合 2)より


代入する数値(この場合1,2,3の3つ)が多い場合は


EAZY IDECの場合


ファイル「C:/Users/A/AppData/Local/EasyIDEC/project/77/main.c」の

「5行目」で記述エラーを発見しました。

index too large

(代入する数値が配列変数の数よりおおい)


Visual Studioの場合


エラー C2078 初期化子の数が多すぎます。

エラー (アクティブ) E0146 初期化子の値が多すぎます


(数値1,2,3の3つの数値で配列変数を初期化しようとしているが

配列変数に対して数値の数がおおいです)



とコンパイルエラーがでてくるぞ。」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます