【C言語】配列の考え方と使い方の基本を解説

プログラミング

 

これまでは、基本的なC言語のルールと簡単な演算、条件分岐、ループ文などの使い方を解説してきました。これらは、掛け算の九九のようなもので知っていることが前提となる超基本的な部分です。

 

C言語をこれから勉強し続けると今よりもっと膨大で多種類なデータを扱うことになるでしょう。それらにいちいち変数を割り振っていたら管理が大変です。そんなとき、配列の知識があればこれらのデータをより楽に管理できるようになります。

 

配列の書き方と考え方

 

配列宣言は書き方は添え字演算子という演算子を使って以下のように書きます。

型は今までの変数と同じように、整数型や浮動小数点型、文字列型など扱う値にあった型を使いす。配列名は変数名と同じです。 aでもbでもいいですし、好きな変数名を付けることが出来ます。要素とは配列に入れる値のことです。つまり要素数とは配列に格納する値の個数のことを指します。

 

例えば、30人の生徒のテストの点数を格納する配列を宣言するときは、整数型で配列名をtensuとすることで以下のように宣言できます。

これを今まで通り変数を使うことで宣言する場合、 int seto1,seito2,seito3,seito4,…と30人分の変数をいちいち宣言することになります。はっきり言ってかなり面倒です。それが上の宣言一つで30人分の変数を扱うことが出来ると考えれば、配列の便利さが分かってもらえると思います。以下の画像を見てください。

名前などといった似たような変数のグループは、配列という簡単な形式でまとめて管理することでいちいち変数を考えなくてよいのです。

 

配列に数値を入力して初期化するときは以下のように{}で囲んで書きます。

では初期化しないとどうなるのかというと、要素として用意されている分は0とデフォルトで代入されます。例えば、int a[3];宣言すると、a[0]、a[1]、a[2]、の中にはすべて0が代入されている状態です。

 

ここで、配列を扱う際の注意点を書きます。

  • []の中には必ず整数が入る
  • 要素が0から始まる
  • []の中の要素は変数名であらわすことが出来る

まず、[]の中には必ず整数が入ります。実数や文字などは入りません。そして、要素が0から始まります。つまり、配列を int a[3]; で宣言した場合は、a[0]、a[1]、a[2] 3つの配列が生まれたことになります。

 

ここで、int a[3]; で宣言されたのに a[3]がないのに違和感を覚える人がいると思います。これは int a[3]; の宣言で記述した3はあくまでも要素数であり、配列の中でいくつの値を扱うのかということだけを指すからです。要素が0から始まることと、要素数が1から数えることの違いです。

 

ちなみに、これを間違えて int a[3]; と宣言した配列で a[3]を呼び足した場合、当然のことながらバグが発生し、プログラムが実行できなかったり意図しない値が発生したりします。

 

[]の中の数字は変数で表すことが出来ます。つまり、for文でa[i]とおくことで、いちいち配列名を書かなくてもループ文で機械的に回すことが出来ると言うことです。以下のプログラムでそれを実演しているので確認してみてください。

 

配列を使った簡単なプログラム

 

それでは、配列を使た簡単なプログラム「5つの要素を持つ配列を作り、それの1~5の値を代入する」プログラムを作りましょう。ようすに、あらかじめ用意した配列を初期化するプログラムです。以下がプログラムのソースコードです。

for文で配列の[] の中の整数を変化させることで、わざわざa[1],a[2] と書かなくてもよくなったわけです。配列のこのfor文を使った活用法はとても頻繁に使う手法なので、よく覚えていてください。

実行結果は以下になります。

実行結果はオーケーですね。しかし、はっきり言ってこれだけでは配列の便利さがよくわからないと思う人もいると思います。しかし、次回からはもっと配列でしかできないことを紹介していくつもりなので、今回は「配列の簡単な解説と考え方」をしっかり覚えていってください。

コメント