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

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


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

(この場合

生成される配列変数の数は

hairetubox [0]

hairetubox [1]

hairetubox [2]

hairetubox [3]

hairetubox [4]

の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 [0]=1;

hairetubox [1]=2;

hairetubox [2]=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};


により作成される配列変数の数


(この場合

hairetubox [0]

hairetubox [1]

の 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つの数値で2つの配列変数を初期化しようとしているが

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



とエラーがでてくるぞ。」

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る