インターネットエクスプローラで学ぶC言語(入門編)

レッスン12:配列の基礎

このレッスンで学ぶことは?
コンピュータは、たくさんのデータを取り扱います。データを取り扱うにはそれぞれに対応した変数を用意します。しかし、これは手間がかかります。同じようなたくさんの変数を一度に用意する方法に配列があります。このページでは、配列について説明します。
クイックジャンプ: 配列 | 例1 | 動作確認1 | 例2 | 動作確認2 | 練習 | 次のレッスンでは?


今までの変数宣言では1つの箱しか用意していません。配列は複数の箱をもっているもので、宣言してから使います。例えば、
  int a[.5];
と宣言しますと、下のようなint型の5つの箱から構成される配列が用意されます。それぞれの箱を要素と呼びます。配列の名前(配列名)はaです。それぞれの箱は、a[0]、a[1]、a[2]、a[3]、a[4]として使われます。配列名の前後にあるカギ括弧( [ と ]) の中の数字を添え字を呼びます。ここでは、添え字は0から4までの数字が使われていることに注意してください。0から4までですので、全部で5つの箱が用意され、要素数が5になるのです。

まとめますと、配列は次のように宣言し、使用します。

配列宣言

  配列名 [配列要素数];

配列の使用方法

配列名[添え字]

例1

プログラム

次のようなプログラムをみてみましょう。
[注意]左端の番号は、プログラムの一部ではありません。各行を区別するために付けた番号です。

  1. void main(void)
  2. {
  3.   int a[3];
  4.   a[0]=1;
  5.   a[1]=2;
  6.   a[2]=3;
  7. }

プログラム説明

 3行目int a[.3]と宣言されていますので、3つの箱が用意され、それぞれの箱はa[0]、a[1]、a[2]として使います。4行目5行目6行目の代入文で、それぞれの箱に1、2、3をいれています。

動作確認
それでは、上の例1の動作確認をしてみましょう。また、プログラムを変更して、下の動作確認をしてみましょう。動作確認をする前に、Internet Explorerの設定をちゃんとしているか調べてください。

Cシミュレータ
Cシミュレータによる動作確認をするときは上の絵をクリック
[注意]このリンク先のページはInternet Explore 3.0以降で正しく表示されます。

例2

プログラム

for文を使って、例1と同じ処理をするプログラムを作成しましょう。
[注意]左端の番号は、プログラムの一部ではありません。各行を区別するために付けた番号です。

  1. void main(void)
  2. {
  3.   int a[3], i;
  4.   for(i=0;i<=2;i=i+1)
  5.     a[i]=i+1;
  6. }

動作確認
それでは、上の例2の動作確認をしてみましょう。

Cシミュレータ
Cシミュレータによる動作確認をするときは上の絵をクリック
[注意]このリンク先のページはInternet Explore 3.0以降で正しく表示されます。

練習
配列に慣れるために、少し練習しましょう。

練習1

問題: 次のプログラムでは、最終的に配列の各値はいくつになりますか?
  1. void main(void)
  2. {
  3.   int a[4], i;
  4.   for(i=0; i<=3; i=i+1)
  5.     a[i]:=i+2;
  6. }
解答例: ここをクリック。

 

練習2

問題: 次のプログラムでは、最終的に配列の各値はいくつになりますか?
  1. void main(void)
  2. {
  3.   int a[6], i, j, k;
  4.   a[0]:=1;
  5.   a[1]:=1;
  6.   for(i=0;i<=3;i=i+1)
  7.   {
  8.     j=i+1;
  9.     k=j+1;
  10.     a[k]=a[i]+a[j];
  11.   };
  12. }
解答例: ここをクリック。

次のレッスンでは?
ここまでCの基本中の基本を学習してきてました。これで、基本的な学習は終りです。次のページでは、これまでの復習をします。[レッスン13へ]


TitleLineAnim.gif (2453 バイト)
http://or-lab.asahi-u.ac.jp/

このページの最終更新日は 00/01/25 です。
このページに関するご意見・コメントは板谷雄二(itaya@alice.asahi-u.ac.jp)までお願いします。

(C) 板谷雄二