スライドショー

【C言語入門】配列とは?配列の使い方総まとめ

C言語には同じデータ型の複数の値をまとめて扱うための配列があります。

配列を使うと同じデータ型の変数を複数宣言する必要がなくなるため、簡潔にコードを記述することができるようになります。

この記事では、

・配列とは
・配列の使い方
・配列の宣言と初期化をする方法
・配列に代入とコピーをする方法

という基本的な内容から、

・2次元配列(多次元配列)の使い方
・配列の要素数(サイズ)をsizeof関数で取得する方法

などの応用的な使い方に関しても解説していきます。

今回はこれらの方法を覚えるために、配列のさまざまな使い方をわかりやすく解説します!

配列とは

配列とは、同じデータ型の複数の値を1つの変数にまとめて使用するためのものです。

配列を使うと同じデータ型の変数を複数宣言する必要がなくなるため、簡潔にコードを記述することができるようになります。

配列の詳しい使い方はこの記事で順に解説していくので、ぜひ最後まで確認してください!

配列の宣言と初期化をする方法

配列を宣言する方法

配列の宣言は次のように、データ型と変数名と要素数を記述します。

// 配列の宣言
int intArray[3];

// 配列を使わない場合の宣言
int num1, num2, num3;

配列を使うと複数の値を1つの変数でまとめて扱うことができるため、コードを簡潔に記述できることが確認できます。

配列を初期化する方法

ここでは配列を初期化する方法を解説します。

配列の初期化は宣言と同時に初期化する方法と、値を1つずつ代入する方法があります。

配列の宣言と同時に初期化する場合は、配列の要素数の記述を省略することができます。

配列を初期化する方法を次のプログラムで確認してみましょう。

#include <stdio.h>

int main(void) {

    // 宣言と同時に初期化
    int intArray1[3] = { 1, 2, 3 };
    for (int i = 0; i < 3; ++i) {
        printf("%d ", intArray1[i]);
    }
    printf("\n");

    // 要素数を省略して初期化
    int intArray2[] = { 4, 5, 6 };
    for (int i = 0; i < 3; ++i) {
        printf("%d ", intArray2[i]);
    }
    printf("\n");

    // 1つずつ値を代入して初期化
    int intArray3[3];
    intArray3[0] = 7;
    intArray3[1] = 8;
    intArray3[2] = 9;
    for (int i = 0; i < 3; ++i) {
        printf("%d ", intArray3[i]);
    }

    return 0;
}
[実行結果]
1 2 3 
4 5 6 
7 8 9 

このプログラムでは配列を指定した値で初期化して、その値を表示しています。

プログラムの実行結果から、いずれの方法でも初期化ができていることが確認できます。

配列をコピーする方法

ここでは配列をコピーする方法を解説します。

配列のコピーは「配列A = 配列B」のように記述してコピーすることはできません。

そのため、for文を使って要素を1つずつコピーするか、memcpy関数を使ってコピーすることになります。

配列をコピーする方法を次のプログラムで確認してみましょう。

#include <stdio.h>
#include <string.h>

int main(void) {

    int intArray1[3] = { 1, 2, 3 };
    int intArray2[3];
    int intArray3[3];

    // for文でコピー
    for (int i = 0; i < 3; ++i) {
        intArray2[i] = intArray1[i];
        printf("%d ", intArray2[i]);
    }
    printf("\n");

    // memcpy関数でコピー
    memcpy(intArray3, intArray1, sizeof(int) * 3);
    for (int i = 0; i < 3; ++i) {
        printf("%d ", intArray3[i]);
    }

    return 0;
}
[実行結果]
1 2 3 
1 2 3 

このプログラムではfor文で配列をコピーした結果と、memcpy関数でコピーした結果をそれぞれ表示しています。

プログラムの実行結果から、いずれの方法でも正しくコピーができていることが確認できます。

配列の初期化やコピーなどの基本的な使い方についてはこちらで詳しく解説しているので、ぜひ確認してください!

【C言語入門】配列の使い方まとめ(初期化、代入、宣言、コピー)
更新日 : 2019年4月22日

2次元配列(多次元配列)の使い方

ここでは2次元配列(多次元配列)の使い方を解説します。

2次元配列は次のように記述します。

データ型名 変数名[行の要素数][列の要素数];

2次元配列の使い方を次のプログラムで確認してみましょう。

#include <stdio.h>

int main(void) {

    int intArray[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };

    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            printf("%d ", intArray[i][j]);
        }
        printf("\n");
    }

    return 0;
}
[実行結果]
1 2 3 
4 5 6 

このプログラムでは2次元配列を値を指定して初期化して、その後に2重ループを使って2次元配列の値を表示しています。

2次元配列の使い方についてはこちらで詳しく解説しているので、ぜひ確認してください!

【C言語入門】2次元配列の使い方まとめ
更新日 : 2019年4月22日

配列の要素数(サイズ)をsizeof演算子で取得する

最後に配列の要素数(サイズ)をsizeof演算子で取得する方法を解説します。

sizeof演算子は変数や型のメモリサイズをバイト単位で返します。

配列の要素数はsizeof演算子で配列全体のメモリサイズを求め、それを配列の要素一つ分のメモリサイズで割ることで求めることができます。

配列の要素数をsizeof演算子で取得する方法を次のプログラムで確認してみましょう。

#include <stdio.h>

int main(void) {

    int intArray[3] = { 1, 2, 3 };

    int arrayNumber = sizeof intArray / sizeof intArray[0];

    printf("配列の要素数 : %d", arrayNumber);

    return 0;
}
[実行結果]
配列の要素数 : 3

このプログラムではsizeof演算子を使って配列の要素数を取得して表示しています。

sizeof演算子の使い方についてはこちらで詳しく解説しているので、ぜひ確認してください!

【C言語入門】sizeof演算子の使い方(配列の要素数、構造体のサイズ)
更新日 : 2019年5月10日

まとめ

いかがでしたか?

今回は配列の使い方について解説しました。

配列を使うと1つの変数で複数の値を扱えるようになり、簡潔にコードを記述することができるのでぜひ活用してくださいね!

もし、配列を使う方法を忘れてしまったらこの記事を確認してください!

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]