状態遷移までの学習が完了すると、プログラムの「流れ」を制御できるようになります。
次のステップとして重要になるのが、複数のデータをまとめて扱う技術です。
例:
- テストの点数一覧
- 商品リスト
- 名前の一覧
このようなデータを扱う場合、変数を1つずつ用意するのは非効率です。
そこで「配列」と「文字列」を使用します。
本記事では、これらの基本と使い方について解説します。
本記事の目的・学習目標
学習目標は次の3点です。
- 配列とは何かを理解する
- 文字列の仕組みを理解する
- 複数のデータをまとめて扱えるようになる
この記事を学ぶことで、文字列が扱えるようになり、規模の大きなデータを整理して扱えるようになれます。
配列とは
配列とは、同じ種類のデータをまとめて管理する仕組みです。
[ ]を使用して1つの名前で複数の値をまとめて管理する仕組みというイメージです。
例として、4つの商品の価格(円)を管理する場合、変数を4つ作成します。
以下図のように、4つの変数として個別に管理するのではなく、複数のデータをまとまりとして扱うことができます。

配列の書き方については次に説明します。
配列の基本構造
配列は次のように定義します。

配列の1つ1つの [ ] を「要素」と呼ばれます。
int price[4];と配列を作成した場合、price[0] 〜 price[3] の4つのデータを持ちます。
price[1]からではなくprice[0]から始まるのは下記のインデックスという決まりがあるからです。
インデックス(添字)
配列の要素には番号があり、これを インデックス と呼びます。
- 最初は 0から始まる
- 最後は 要素数 – 1

上図のようにprice[4]で定義と代入をした場合、price[4]は存在しない領域となります。
値の代入
配列に値の代入をする方法は2通りあります。
1つ目は、インデックスを指定して1つずつ代入する方法です。

この方法は、後から値を変更したい場合や、条件によって値を変える場合に使用します。
2つ目は、配列の定義と同時にまとめて代入する方法です。

この方法では、配列を作ると同時にすべての要素に値を設定できます。
それぞれの使い分けとしては、
- 値があらかじめ決まっている場合 → まとめて代入
- 実行中に値を設定する場合 → 1つずつ代入
となります。
配列の値の使用時は以下のように、インデックスまで含めた入力で使用します。
- price[0];
- for(int i = 0; i < 4; i++)
{
printf(“%d\n”, price[i]);
}
また、 配列は ループと組み合わせて使用されることが多いです。
文字列とは
文字列とは、文字の並びのことです。
例:
- “Apple”
- “Orange”
C言語では、文字列は特別な型ではなく、char型の配列として扱われます。
文字列の基本構造
文字列は次のように定義します。

文字列では最後に ‘\0’(終端文字) が入ります。
つまり内部的には:
- ‘A’ ‘p’ ‘p’ ‘l’ ‘e’ ‘\0’
と各要素に1文字ずつが入っている形で文字列を構成しているようになっています。
使用する要素数は6となり、char name[6]以上配列が必要になります。
配列サイズの考え方
name[10] は 10文字分の領域を確保しているということになります。
配列はあくまで「文字を入れるための領域」を確保するものであり、そのすべてを必ず使い切る必要はありません。
この例では「Apple」(6要素分)だけを使用しています。
そのため、残りの要素は未使用の領域として残ります。
配列を作成するときは使う数ではなく、用意する要素の最大数を基準に作成します。
文字列の扱い方
以下に配列にて char name[10] = “Apple”; と定義した場合の
文字列の出力、配列にて定義した文字列の内の1文字の出力をするコードの書き方をそれぞれ記載しています。

まとめ
本記事では「配列と文字列」について解説しました。
今回の学習内容は以下の通りです。
- 配列は複数のデータをまとめて管理できる
- インデックスは0から始まる
- 文字列はchar配列で表現される
- ‘\0’が文字列の終わりを示す
- 文字列の要素数は余裕をもって領域を確保することが可能
これらを理解することで、より実践的なプログラムが書けるようになります。
本記事で登場した用語
本シリーズでは、記事で登場する専門用語を補助知識カテゴリの「④-4 用語辞典」 にまとめています。
①配列
同じ種類のデータをまとめて管理する仕組み
②インデックス(添字)
配列の各データに付けられる番号(0から始まる)
③要素
配列の中の1つ1つのデータ
④文字列
文字が連続して並んだデータ
⑤終端文字(\0)
文字列の終わりを示す特別な文字
⑥配列サイズ
配列として確保するデータの数(領域の大きさ)
関連記事
次の記事では、ポインタ について解説します。
▶ 次の記事
C言語入門:③-3 ポインタ【応用ロジック】
◀ 前回の記事
C言語入門:③-1 状態遷移【応用ロジック】
◆同じカテゴリの記事一覧(概要ページ)
C言語入門シリーズ:③-0 応用ロジック【概要】(全5記事)
◆シリーズの記事一覧
C言語入門シリーズ:プログラムの基本構造【記事一覧】

[…] C言語入門:③-2 配列と文字列【応用ロジック】 […]