Cプログラミング · 1 min read · Feb 14, 2026
Linux Cプログラミングチュートリアル 第7部: 配列

これまでにCプログラミングにおける変数の概念について議論しました(ここやここ)。簡単に振り返ると、変数とは特定の型の値を保持できるものです - 整数、文字、または浮動小数点数である可能性があります。しかし、変数には1つの制限があります: 任意の時点で単一の値しか保持できません。
これは、複数の値を保持したい場合、同じ数の変数を扱わなければならないことを意味します。たとえば、プログラムがユーザーから10個の整数値を受け取り、それを出力する場合、次のように書くことができます:
#include
int main()
{
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;
printf("10個の整数値を入力してください\n");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
scanf("%d",&d);
scanf("%d",&e);
scanf("%d",&f);
scanf("%d",&g);
scanf("%d",&h);
scanf("%d",&i);
scanf("%d",&j);
printf("入力した値は次の通りです:\n");
printf("%d\n",a);
printf("%d\n",b);
printf("%d\n",c);
printf("%d\n",d);
printf("%d\n",e);
printf("%d\n",f);
printf("%d\n",g);
printf("%d\n",h);
printf("%d\n",i);
printf("%d\n",j);
return 0;
} または次のように:
#include
int main()
{
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;
printf("10個の整数値を入力してください\n");
scanf("%d %d %d %d %d %d %d %d %d %d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j);
printf("入力した値は次の通りです:\n");
printf("%d %d %d %d %d %d %d %d %d %d\n",a,b,c,d,e,f,g,h,i,j);
return 0;
} 2番目のアプローチは、書かれたコードの行数の観点から比較するとわずかに優れていますが、さらに良い方法があります。それは整数配列を使用することです。
はい、同じ型の複数の値を保持する必要がある場合は、配列を選択すべきです。10個の値を保持できる整数配列の定義は次のようになります:
int arr[10]ここで、’int’は配列’arr’が格納する値の型を指します。角括弧内の数字10は、’arr’の容量が10個の値であることを示しています。さて、この配列を使用したコードの一部は次のようになります:
#include
int main()
{
int arr[10],i;
printf("10個の整数値を入力してください\n");
for(i=0;i<10;i++)
scanf("%d",&(arr[i]));
printf("入力した値は次の通りです:\n");
for(i=0;i<10;i++)
printf("%d\n",arr[i]);
return 0;
} scanfとprintf関数については、以前のチュートリアルの1つで既に議論しましたので、詳細を知りたい場合はそれらの記事を参照してください。
配列に戻ると、上記のコードの’for’ループはi=0から始まることに気づくでしょう。これは、配列の添字(角括弧内の数字)が常にゼロから始まるためです。したがって、ここでは、arr[0]はユーザーが入力した最初の値を指し、arr[1]は2番目の値を指し、以降arr[9]は10番目の値を指します。
配列に格納された各値のメモリアドレスにも簡単にアクセスできることを言及する価値があります。これは、配列名、つまりこの場合は’arr’を使用することで行えます。したがって、コード内で単に’arr’を使用すると、それは最初の要素のメモリアドレスに他なりません。
同様に、2番目の要素のメモリアドレスにアクセスしたい場合は、単に’arr+1’を使用します。3番目の要素の場合は’arr+2’を使用し、以下同様です。次のコードとその出力は、より良い理解を提供するはずです。
#include
int main()
{
int arr[10],i;
printf("最初と2番目の値のアドレスは: %u %u\n", arr, arr+1);
return 0;
} そして、出力は次のようになります:
最初と2番目の値のアドレスは: 2904035888 2904035892ご覧のとおり、これらのアドレスには4バイトの差があります - これは、1つの整数値が私のシステムで4バイトを占めるためです。
このチュートリアルでは、配列の基本について議論しました。整数配列の例のみを示しましたが、文字などの他の型の配列も持つことができます。このチュートリアルで使用した例を試してみて、疑問や質問があれば下のコメントセクションでお知らせください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。