C言語で配列サイズを定数で定義する方法を詳しく解説!初心者向けガイド
生徒
「C言語で配列を作るとき、毎回大きさを数字で書いているんですが、もっと簡単に書く方法はありますか?」
先生
「配列サイズを定数で管理すると、とても便利になりますし、あとで変更もしやすくなるんですよ。」
生徒
「定数ってなんですか?数字をそのまま書くのとは違うんですか?」
先生
「定数は、後から値を書き換えできない特別な変数のようなものです。C言語の開発ではよく使うので、ここでしっかり覚えておきましょう。」
1. 配列とサイズ指定の基本
C言語でプログラムを書くとき、複数のデータをまとめて扱いたい場面があります。例えばテストの点数、商品の在庫数、ゲームのスコアなど、数字や文字をたくさん扱いたい場合に使うのが配列です。配列は一定の個数をまとめて保存できます。そのときに必要になるのが配列サイズです。配列サイズとは、配列に入るデータの個数のことです。
しかし、プログラムの途中で配列サイズを変更したくなったとき、すべての数字を書き換えると大変です。そこで役に立つのが定数やマクロを使う方法です。
2. 配列サイズを定数で定義するメリット
配列サイズを定数で定義するとたくさんの良いことがあります。配列の大きさがひとつの場所で管理されるので、あとで見直しが簡単になります。また、ソースコードが読みやすくなり、他の人が見ても意味が理解しやすくなります。数字が直接書かれていると「この10は何の個数?」と分かりにくくなってしまいますが、定数を使うと意味のある名前をつけられます。
3. constを使った定数による配列サイズ指定
C言語では、constを使うことで変更できない変数を作ることができます。これを使うと配列サイズを定数のように扱うことができます。名前をつけておけば何の数なのかひと目で分かります。数字を直接書かず、意味のある単語を使うことでプログラムの正確さも上がります。
#include <stdio.h>
int main()
{
const int SIZE = 5;
int scores[SIZE] = {10, 20, 30, 40, 50};
for(int i = 0; i < SIZE; i++)
{
printf("%d\n", scores[i]);
}
return 0;
}
この例では、配列サイズをSIZEという名前にしています。この書き方なら、あとで配列の大きさを変えたいときもSIZEだけ変えればよいのでとても便利です。初心者でも意味を理解しやすく、プログラム全体の読みやすさも上がります。
4. マクロ定数を使った配列サイズ指定
C言語にはマクロという機能もあり、プログラムを実行する前の段階で置き換えをしてくれます。マクロ定数は#defineという書き方で値に名前をつけます。配列の大きさを決めるときにもよく使われる方法です。
#include <stdio.h>
#define MAX 10
int main()
{
int data[MAX];
for(int i = 0; i < MAX; i++)
{
data[i] = i * 2;
}
for(int i = 0; i < MAX; i++)
{
printf("%d\n", data[i]);
}
return 0;
}
#define MAX 10と書くことで、配列サイズを意味のある名前で表現できます。数字だけを見ても意味は分かりませんが、名前があると目的が明確になります。大きなプログラムになるほど、このような書き方が重要になります。
5. constとマクロはどちらを使うべき?
配列サイズを定義するとき、constとマクロのどちらを使ったほうがよいのか迷う場合があります。constは型の情報を持ち、変数と同じように扱うことができます。マクロはコンパイル前に置き換えられるため、どんな場所でも使えるという特徴があります。小さなプログラムではどちらでも問題ありませんが、型の安全性を重視するのであればconstを使う方が読みやすくて安全です。
現代のC言語ではconstを使った書き方がおすすめです。理由は型が明確になるため、間違いを減らせるからです。マクロは柔軟ですが、大きなプロジェクトでは思わぬ部分に影響を与えることもあるため、使い方に注意が必要です。
6. 配列サイズを定数で管理すると何が変わる?
配列の大きさを直接数字で書かず、定数で管理すると、後から変更したときのミスを減らせます。たとえば学校の名簿を10人から20人に増やしたい場合、定数を使っていなければプログラムの中の数字を探して書き換える必要があります。しかし定数を使えば値をひとつ変えるだけで済みます。プログラミング未経験の人でも、この便利さはすぐに理解できます。
7. 初心者がやりやすい練習方法
はじめての人は、小さな数字を定数化するところから始めましょう。配列の大きさ、ループの回数、得点の数、文字の個数など、いろいろな場面で使えます。とくに配列は使う場面が多いので、必ず役に立ちます。数字に名前をつけることで、意味がはっきりするので読みやすさが上がり、プログラムの理解も進みます。