プログラミングの「配列」とは?質の高いプログラムでステップアップ!

コンピューターはプログラミングの内容にしたがってメモリからデータを取り出し処理を行います。
そのため質の高いプログラミングを行うためには、データがメモリ上にどのような構造で処理されているかということも考慮しなければいけません。
その代表的なデータ構造の1つが「配列」です。
プログラミングを学習していると配列というワードがよく出てきますよね。
この配列につまづいている方も少なくないのではないでしょうか?
そこでこの記事では、
- 配列の基本的な意味
- 使用するときの3つの注意点
- うまく活用する方法
などについてくわしく解説していきます。
配列をマスターすれば、より質の高いプログラムが書けるようになります。
配列への理解を深めたい方は、ぜひ最後まで読み進めてくださいね。
プログラミングの「配列」とは

配列とは、複数のデータを順番に並べた構造のことです。
上にある画像のように、同じデータ型の複数の値を1つの変数にまとめて使用できます。
目的のデータが「何番目にあるか?」を指定することでデータを取り出せるのが特徴。
通常、変数には1つの値しか入れることができません。
しかし、配列を使用すれば複数宣言する必要がなくなるため、より少ないコードで済むのです。
「どうしてプログラミングでは読みやすい簡潔なコードを書く必要があるの?」
と疑問に感じる方は、こちらの記事もぜひ参考にしてください。

知っていますか?IT業界は市場価値が高まっています!市場価値の高い業界で働くことで、現在より年収UPが可能です。
また、 ITスキルを身につけることで、どの業界でも必要とされる人材に成長できます!
【DMM WEBCAMP】のプログラミングスクールでは、未経験から最短3ヶ月でエンジニアとして転職が可能です。
DMM WEBCAMPでは転職成功率98%の転職コースを複数提供しています
✔︎︎︎企業が本当に求めるビジネススキルを優先的に取得可能!
✔︎︎︎︎キャリアカウンセラーとメンターがあなたの転職活動とスキル獲得を両面サポート‼
✔︎︎︎紹介可能企業は600社以上!?
IT業界に転職したい方はぜひご覧ください!
「なんか今の仕事合わないな・・・」
「IT業界に転職してみたいなぁ・・・」
という方、DMMが運営する「WEBCAMP エンジニア転職」をご検討してみてはいかがですか?

「WEBCAMP エンジニア転職」では最短12週間でITエンジニアを目指すことが可能です!
WEBCAMPの卒業生は転職後に年収もUP!(例:年収250万円→500万円)
しかも今なら受講料の最大70%が給付金として支給されます。
DMM WEBCAMPは経済産業省・厚生労働省が認定した専門実践教育訓練給付金制度の対象です
配列と変数の違い

「変数」とは、文字や数値などの値を入れておくための箱のようなもののこと。
1つの数値などを入れて保存しておけます。
これに対して配列は、変数が1列に横に並んでいる構造のこと。
つまり、配列と変数の大きな違いは、「データがメモリ上に1列に並べられているかどうか」です。
1つの値しか扱えない変数だけだと、大量のデータを処理するプログラムには向いていません。
より多くのデータを処理する必要がある際に使われるのが配列なのです。
プログラミングをより深く理解するためには「アルゴリズム」の知識も身につける必要があります。
アルゴリズムについてくわしく知りたい方は、こちらの記事もぜひ参考にしてください。

配列を理解するために必要な2つの言葉

配列を理解するうえで知っておきたいのが「添字」と「要素」。
ここからは、この2つの言葉の意味についてくわしく見ていきましょう。
1.配列の添字
まず、配列の「添字(そえじ)」とは、配列の中にある変数の1つ1つに割り振られた番号のことです。
添字は、「何番目の箱(変数)を呼び出したいか?」というときの目印となります。
たとえば、1つ目の箱であれば添字は「0」。
2つ目の箱であれば添字は「1」となります。
このように、添字は0から始まることが特徴なので覚えておきましょう。
2.配列の要素
配列とは、複数のデータを連続的に並べたデータ構造のことでした。
その各データを「配列の要素」といいます。
つまり、配列の中にある箱1つ1つを指す呼び名のことを指すんですね。
プログラミングやパソコンを使って働きたい!
そのように考え、成長しているIT業界への転職を考えている方も増えてきました。
『IT業界に興味はあるけど、よくわからない…』
『パソコンとかそもそも苦手なのに私なんかにできるのかな』
『エンジニアって聞くけど難しそう』
反対にこのような声も聞く事があります。
そう考えている方は、一度ぜひ転職に成功したエンジニアの方のインタビューをご覧ください!
配列の宣言と初期化について解説

配列は変数同様に、宣言と同時に初期化できます。
ここからは、配列の宣言と初期化について見ていきましょう!
1.宣言
配列を使用するためには、まず宣言を行わなければいけません。
配列の宣言は以下のように、「データ型」と「変数名」、「要素数」を記述します。
【構文】 要素のデータ型名 配列名[要素の数];
たとえば、int型(整数型)の要素を5個持つ配列は以下のように宣言されます。
【例】int date1[5];
配列を使わない場合の宣言なら、「int date1, date2, date3;」といったようにどうしてもコードが長くなってしまいます。
配列を使うと複数の値を1つにまとめられるため、コードを簡潔にできるのです。
2.初期化
配列も変数同様に、宣言しただけでは中身の値は不定値です。
必要に応じて初期化を行いましょう。
配列の初期化には、以下の2つの方法があります。
- 宣言と同時に初期化する方法
- 値を1つずつ代入する方法
配列を初期化する構文は以下の通りです。
【構文】要素のデータ型名 配列名[要素の数] = {値1, 値2, 値3, …}
たとえば、int型(整数型)の要素を5個持つ配列の初期化なら以下のように記述します。
【例】int date1[5]={1,2,3,4,5};
また、以下のように値を1つずつ代入する方法もあります。
【構文】要素のデータ型名 配列名[要素の数] ;
たとえば、int型(整数型)の要素を5個持つ配列の初期化なら以下のように記述します。
【例】 int date1[5];
intdate1[0] = 1;
intdate1[1] = 2;
intdate1[2] = 3;
配列の宣言と同時に初期化する場合は、配列の要素数の記述を省略できます。
初期化をすればソース記述の可読性を効率よく上げられるため、ぜひ活用してみてください。
配列の注意点3つ

配列を使用する際には、以下の3つの注意点があります。
- 配列では同じ型のものしか扱えない
- 同じ性質の値だけを入れる
- 配列の長さは変えられない
配列を扱う前にしっかりとチェックしておきましょう。
1.配列では同じ型のものしか扱えない
配列は同じ型のものしか扱えないと決まっています。
たとえば、int(整数型)の変数とString(文字列型)の変数を持つ配列は作れません。
ルールとして覚えておきましょう。
2.同じ性質の値だけを入れる
より読みやすいプログラムを作るためにも、同じ性質の値だけを入れることを意識しましょう。
たとえば、intの配列を作成し、
- 1番目は国語の点数
- 2番目は算数の点数
- 3番目は理科の点数
といったように性質の違う値を入れるのはよくありません。
あくまでも、誰が見ても読みやすいことがプログラミングでは重要です。
1つ1つを別の意味の変数として扱うのであれば、配列ではなく通常の変数を個別に宣言しましょう。
3.配列の長さは変えられない
原則として、配列の長さは1度作成すれば変更できません。
途中から増やしたり減らすことはできないため、はじめにしっかりと確認しておく必要があります。
また、長さを決めずに配列を使うこともできません。
必ず最初に配列の長さを決めておかなければいけないことも覚えておきましょう。
配列をコピーする2つの方法

すべての要素を別の配列にコピーしたい場合がありますよね。
配列をコピーするには、「for文」と「memcpy関数」の2つの方法があります。
それぞれ順番に見ていきましょう!
1.for文
「for文」は、同じ処理を繰り返し行いたい場合に利用します。
#include <stdio.h>
int main(void) {
int i;
int a[3] = {0, 1, 2};
int b[3];
/* 配列のコピー */
for(i=0;i<3;++i){
b[i] = a[i];
}
printf(“%d %d %d\n”, b[0], b[1], b[2]);
return 0;
}
//実行結果
0 1 2
(出典:配列の要素をコピー(代入))
2.memcpy関数
メモリの内容をまとめてコピーしたいなら、「memcpy関数」を使いましょう。
配列はすべての要素が隙間なく連続的に並んでいるため、memcpy関数でコピーできます。
#include <stdio.h>
#include <string.h>
#define ARRAY_SIZE (5)
int main(void)
{
int array1[ARRAY_SIZE] = {0, 1, 2, 3, 4};
int array2[ARRAY_SIZE];
memcpy(array2, array1, sizeof(array1));
for (int i = 0; i < ARRAY_SIZE; ++i) {
printf(“%d “, array2[i]);
}
printf(“\n”);
return 0;
}
//実行結果
0 1 2 3 4
(出典:Programmig Place Plus C言語)
2次元配列・多次元配列とは

ここからは、「2次元配列」と「多次元配列」について見ていきましょう。
まず、「2次元配列」とは1次元配列(1列の配列)を2つ以上まとめた配列のことです。
通常の配列は同じ型の変数データのまとまりであり、変数が一列に並んでいる様なイメージです。
一方、2次元配列では、上記の画像のように2列、3列と並んでいます。
「多次元配列」は、2次元配列と同様に、3次元、4次元と次元の数が増えていく配列変数のこと。
基本的には2次元配列の場合と考え方は同じです。
連想配列とは

連想配列を簡単にまとめると、プログラミングの「添字」に好きな名前を付けられる配列のことです。
まず、配列に関連するワードには
- 「変数」
- 「配列」
- 「配列の要素」
- 「配列の添字」
の4つがありましたよね。
変数は、プログラミング言語における「値を入れておく箱」です。
そして、配列は変数が複数横並びにくっついたもの。
配列の要素は、配列の中にある1つ1つの変数を意味します。
その1つ1つの変数に割り振る番号が配列の添字でしたね。
これが配列の基本です。
以上を踏まえたうえで、連想配列について見ていきましょう。
「連想配列」とは配列の添字に好きな名前を付けられる配列のことです。
本来の添字は「0」から順番に「1」「2」「3」と1つずつ増えていきます。
しかし、連想配列の場合は1つ目に「ねこ」「こあら」「いぬ」とったように好きな名前を添字として指定できるのです。
まとめ:配列を使うとすっきりしたコードが書ける
今回は配列について基本的な知識から変数の違いなど、さまざまなことをお伝えしていきました。
配列を使えば、誰もが読みやすいすっきりとしたプログラムが書けます。
配列を理解して活用していけば、開発の効率化や修正後のバグ発生防止にも繋がっていくでしょう。
プログラマーとしてステップアップしていくためにも、ぜひ本記事を参考にしてみてくださいね。
プログラミングで稼ぐ方法の具体的な手順やコツについて、興味がある方はこちらの記事もぜひ参考にしてください。
