工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C言語の配列:効率的なデータ格納とアクセス

配列とは

配列は、同じ型の要素を固定サイズの順序付きコレクションとして格納できるデータ構造の一種です。配列はデータのコレクションを格納するために使用されますが、同じ型の変数のコレクションと考える方がしばしば有用です。

number0、number1、...、number99のように個別の変数を宣言する代わりに、numbersのような1つの配列変数を宣言し、numbers[0]、numbers[1]、...、numbers[99]で個々の変数を表現します。配列の特定要素にはインデックスでアクセスします。

すべての配列は連続したメモリ位置で構成されます。最も低いアドレスが最初の要素に対応し、最も高いアドレスが最後の要素に対応します。

C言語の配列:効率的なデータ格納とアクセス

配列の宣言

Cで配列を宣言するには、プログラマが要素の型と配列に必要な要素数を指定します:

type arrayName[arraySize];

これは1次元配列と呼ばれます。arraySizeは0より大きい整数定数でなければならず、typeは任意の有効なCデータ型です。例えば、double型の10要素配列balanceを宣言するには:

double balance[10];

ここでbalanceは最大10個のdouble数値を保持するのに十分な変数配列です。

配列の初期化

Cで配列を初期化するには、1つずつ行うか、単一の文で以下のように行います:

double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};

中括弧{ }内の値の数は、角括弧[ ]内で宣言した配列要素数より大きくできません。

配列サイズを省略すると、初期化を保持するのに十分な大きさの配列が作成されます。したがって、以下のように書くと:

double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};

前の例と全く同じ配列が作成されます。配列の単一要素に値を割り当てる例:

balance[4] = 50.0;

上記文は配列の5番目の要素に50.0という値を割り当てます。すべての配列は最初の要素のインデックスとして0を持ち(基底インデックスとも呼ばれます)、配列の最後のインデックスは配列の総サイズマイナス1になります。前述の配列の絵による表現:

C言語の配列:効率的なデータ格納とアクセス

配列要素へのアクセス

要素は配列名にインデックスを付けてアクセスします。これは配列名の後、角括弧内に要素のインデックスを置くことで行います。例:

double salary = balance[9];

上記文は配列から10番目の要素を取り出し、その値をsalary変数に割り当てます。以下の例は、宣言、代入、配列アクセスの3概念すべての使用方法を示します:

Live Demo
#include <stdio.h>
int main() {
    int n[10]; /* nは10個の整数の配列 */
    int i, j;
    /* 配列nの要素を0で初期化 */
    for (i = 0; i < 10; i++) {
        n[i] = i + 100; /* 位置iの要素をi + 100に設定 */
    }
    /* 各配列要素の値を出力 */
    for (j = 0; j < 10; j++) {
        printf("Element[%d] = %d\n", j, n[j]);
    }
    return 0;
}

実行結果:

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

配列の詳細

配列はCにとって重要で、より多くの注意を払う必要があります。Cプログラマが理解すべき配列に関連する重要な概念:

番号概念と説明
1多次元配列
Cは多次元配列をサポート。最も単純な形式は2次元配列。
2関数への配列渡し
配列名をインデックスなしで指定することで、配列へのポインタを関数に渡せます。
3関数からの配列返却
Cでは関数から配列を返せます。
4配列へのポインタ
配列名をインデックスなしで指定するだけで、配列の最初の要素へのポインタを生成できます。

C言語

  1. ボールグリッドアレイ(BGA)完全ガイド:高密度PCB技術のすべて
  2. C# 配列をマスターする:宣言、初期化、操作
  3. C# ジャグ配列をマスターする:宣言、初期化、アクセス
  4. C++配列を関数に渡す完全ガイド:1次元・多次元配列の実例付き
  5. C言語で1次元・2次元配列を関数に渡す方法 – 実践ガイド
  6. C言語における配列とポインタの関係を理解する
  7. C++配列を徹底解説:宣言、初期化、ポインタ活用テクニック
  8. C++動的配列の確保をマスター:コード例付き実践ガイド
  9. MATLAB:多次元配列と特殊配列をマスターする
  10. Java配列コピー技法:包括的ガイド
  11. Java配列チュートリアル:宣言、生成、初期化の完全ガイド