コンテンツにスキップ

配列#

配列とは、複数の値をまとめて扱うためのデータ構造です。

配列の宣言#

配列は、[]を使って宣言します。

型名 配列名[要素数];

実際に、整数の配列を宣言してみましょう。

int array[10];

通常は全て0で初期化されます。(環境依存)


配列の要素へのアクセス#

配列の要素にアクセスするには、配列名[インデックス]という形式で書きます。

#include <cstdio>

int main(void)
{
    int array[10];
    array[0] = 1;
    array[1] = 2;
    array[2] = 3;
    array[3] = 4;
    array[4] = 5;
    array[5] = 6;
    array[6] = 7;
    array[7] = 8;
    array[8] = 9;
    array[9] = 10;

    for (int i = 0; i < 10; i++)
    {
        printf("%d, ", array[i]);
    }
    printf("\n");
}


配列の初期化#

配列を宣言するときに、初期値を指定することができます。

int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

配列の要素数の取得#

配列の要素数を取得するには、sizeof(配列名) / sizeof(配列の要素の型)という形式で書きます。

#include <cstdio>

int main(void)
{
    int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    printf("size = %ld\n", sizeof(array) / sizeof(int));
}

文字列は配列ですが、文字列の長さを取得するには、sizeofではなく、strlenを使います。

仮に、sizeofを使って文字列の長さを取得しようとすると、文字列の終端を表す'\0'も含めた長さが取得されてしまいます。

#include <cstdio>
#include <cstring>

int main(void)
{
    char str[] = "Hello, World!";
    printf("sizeof = %ld\n", sizeof(str));
    printf("strlen = %ld\n", strlen(str));
}

結果

sizeof = 14
strlen = 13