Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語における1次元配列の基礎:宣言・初期化・使い方を徹底解説

配列(Array)とは、関連性のある複数のデータを、ひとつの共通した名前でまとめて格納できる仕組みです。同じ型の値を連続的に扱いたい場合に非常に便利で、C言語プログラミングの基本となる重要な概念のひとつです。

配列の宣言方法(構文)

配列を宣言する際の基本的な構文は以下のとおりです。

datatype array_name [size];

配列の種類

C言語の配列は、大きく分けて次の3種類に分類されます。

  • 1次元配列(One-dimensional array)
  • 2次元配列(Two-dimensional array)
  • 多次元配列(Multi-dimensional array)

1次元配列とは

1次元配列は、値が一列に並んだ最もシンプルな形の配列です。宣言の構文は以下のとおりです。

datatype array_name [size];

例えば、int a[5]; と宣言すると、int型の要素を5つ格納できる配列 a が作成されます。

配列の初期化方法

配列の初期化には、主に次の2つの方法があります。

  • コンパイル時初期化(Compile time initialization)
  • 実行時初期化(Runtime initialization)

サンプルプログラム①:コンパイル時初期化

コンパイル時にあらかじめ値を設定する例がこちらです。

#include<stdio.h>
int main ( ){
   int a[5] = {10,20,30,40,50};
   int i;
   printf ("elements of the array are");
   for ( i=0; i<5; i++)
      printf ("%d", a[i]);
}

実行結果

Elements of the array are
10 20 30 40 50

サンプルプログラム②:実行時初期化

次に、ユーザーからの入力を受け取って配列に値を格納する例です。

#include<stdio.h>
main ( ){
   int a[5],i;
   printf ("enter 5 elements");
   for ( i=0; i<5; i++)
      scanf("%d", &a[i]);
   printf("elements of the array are");
   for (i=0; i<5; i++)
      printf("%d", a[i]);
}

実行結果

enter 5 elements 10 20 30 40 50
elements of the array are : 10 20 30 40 50

注意点

  • コンパイル時初期化の場合、プログラムの中で値が固定されているため、実行するたびに出力結果は変わりません。
  • 一方、実行時初期化の場合は、実行時にユーザーが自由な値を入力できるため、実行ごとに出力結果が変わる可能性があります。

サンプルプログラム③:初期化方法による違いを確認

最後に、初期化の有無や方法によって配列の中身がどう変わるかを確認できるプログラムを紹介します。

#include <stdio.h>
int main(void){
   int a[4];
   int b[4] = {1};
   int c[4] = {1,2,3,4};
   int i; //for loop counter
   //printing all elements of all arrays
   printf("\nArray a:\n");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d\n",i,a[i]);
      printf("\nArray b:\n");
   for( i=0; i<4; i++)
      printf("arr[%d]: %d\n",i,b[i]);
      printf("\nArray c:\n");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d\n",i, c[i]);
   return 0;
}

実行結果

Array a:
arr[0]: 8
arr[1]: 0
arr[2]: 54
arr[3]: 0
Array b:
arr[0]: 1
arr[1]: 0
arr[2]: 0
arr[3]: 0
Array c:
arr[0]: 1
arr[1]: 2
arr[2]: 3
arr[3]: 4

このプログラムからわかること

  • 配列 a のように初期化しない場合、各要素には不定値(ガベージ値)が入ります。実行環境によって値は異なります。
  • 配列 b のように一部だけ初期化すると、残りの要素は自動的に 0 で埋められます。
  • 配列 c のようにすべての要素を初期化すると、指定した順番どおりの値が格納されます。

このように、1次元配列は宣言・初期化の方法を正しく理解することで、安全かつ効率的に活用できます。特に「未初期化の配列には不定値が入る」という点はバグの原因になりやすいため、必ず意識しておきましょう。

  1. C#の配列(Array)とは?宣言方法と基本的な使い方を解説

    配列(Array)とは、同じ型の要素を固定サイズで連続的に格納できるデータ構造です。複数のデータをまとめて管理したいときに使われますが、より正確には「連続したメモリ領域上に並べて格納された、同じ型の変数の集合」と考えるとイメージしやすくなります。C#における配列の宣言方法C#で配列を宣言するには、以下の構文を使用します。datatype[] arrayName;それぞれの要素の意味は次のとおりです。datatype:配列に格納する要素の型(int、stringなど)を指定します。[ ]:配列のランク(次元数)を指定します。ここで配列の大きさが決まります。arrayName:配列の名前を指定しま

  2. C#のArrayクラスとは?主なプロパティと使い方をわかりやすく解説

    C#のArrayクラスとは Arrayクラスは、C#におけるすべての配列の基底クラス(基本クラス)です。このクラスはSystem名前空間で定義されており、配列を操作するためのさまざまなプロパティやメソッドが用意されています。 通常、C#で配列を作成すると、その配列は暗黙的にこのArrayクラスから派生しているため、Lengthなどの便利な機能をすぐに利用できます。 Arrayクラスの主なプロパティ一覧 以下の表は、Arrayクラスで特によく使用される代表的なプロパティをまとめたものです。 番号 プロパティと説明 1 IsFixedSize 配列が固定サイズであるかどうかを示す値を取得