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

C言語の配列とは?特性と基本操作をわかりやすく解説

配列(アレイ)とは、単一の変数名で管理される、同種のデータ項目の連続的な集合体です。

例: int student[30];

この場合、student が配列名となり、1つの変数名で30個分のデータ項目を格納できます。

配列の主な特性

配列には以下のような特徴があります。

  • 配列は常に連続したメモリ領域に格納されます。
  • 同じ型の複数の値を格納でき、それらを1つの名前で参照できます。
  • ポインタは、配列名に割り当てられたメモリブロックの先頭位置を指します。
  • 配列のデータ型は整数(int)、文字(char)、浮動小数点数(float)などであり、宣言時にのみ初期化できます。
  • 配列内の特定の要素は、他の要素に影響を与えることなく個別に変更できます。
  • すべての要素は添字(インデックス番号)によって識別できます。

配列に対する基本操作

配列に対して実行できる主な操作は次のとおりです。

  • 探索(サーチ) ― 特定の要素が配列内に存在するかどうかを調べる操作です。
  • 整列(ソート) ― 配列内の要素を昇順または降順に並べ替える操作です。
  • 走査(トラバーサル) ― 配列内の全要素を順番に処理していく操作です。
  • 挿入(インサート) ― 配列に新しい要素を追加する操作です。
  • 削除(デリート) ― 配列から要素を取り除く操作です。

サンプルプログラム

以下は、配列内の要素を探索するC言語プログラムの例です。

#include <stdio.h>
#define MAX 100 // 配列の最大サイズ

int main(){
    int array[MAX];
    int size, i, search, found;

    printf("配列のサイズを入力してください: ");
    scanf("%d", &size);

    printf("配列の要素を入力してください: ");
    for(i = 0; i < size; i++){
        scanf("%d", &array[i]);
    }

    printf("\n探索したい要素を入力してください: ");
    scanf("%d", &search);

    found = 0;
    for(i = 0; i < size; i++){
        if(array[i] == search){
            found = 1;
            break;
        }
    }

    if(found == 1){
        printf("\n%d は %d 番目の位置に見つかりました\n", search, i + 1);
    } else {
        printf("\n%d は配列内に存在しません\n", search);
    }

    return 0;
}

プログラムのポイント

このプログラムでは、まず配列のサイズと各要素をユーザーから入力として受け取ります。その後、forループを使って配列を先頭から順番になぞり(線形探索)、目的の値と一致する要素が見つかった時点でフラグ変数 found を立ててループを抜けます。最後に、探索結果に応じて「見つかった位置」または「見つからなかったこと」を出力します。

実行結果

上記プログラムの実行例は以下のとおりです。

Enter size of array: 5
Enter elements in array: 11 24 13 12 45
Enter element to search: 13

13 is found at position 3

このように、配列と線形探索の仕組みを理解することは、C言語におけるデータ管理の基礎を身につける第一歩となります。ぜひ実際にコードを動かして、挙動を確認してみてください。

  1. C言語入門:ポインタ配列とポインタへのポインタ(二重ポインタ)の基本をわかりやすく解説

    はじめにC言語において、ポインタはメモリを直接扱える強力な機能です。本記事では、その応用形である「ポインタ配列」と「ポインタへのポインタ(二重ポインタ)」について、宣言方法・初期化方法・値へのアクセス方法を、サンプルコードと実行結果とともに順を追って解説します。 ポインタ配列とは通常の変数と同様に、ポインタも配列として宣言することができます。これを「ポインタ配列」と呼びます。各要素がそれぞれ別のアドレスを保持できるため、複数のデータを間接的に扱う際に便利です。 宣言方法データ型 *ポインタ名 [サイズ];例えば、次のように宣言します。int *p[5]; // int型の要素アドレスを5つ格納

  2. C言語の文字操作を徹底解説!宣言方法と入出力関数の使い方

    Cプログラミング言語において、文字(character)は英大文字(A〜Z)、英小文字(a〜z)、数字(0〜9)、空白(ホワイトスペース)、または特殊記号のいずれかとして扱われます。文字の宣言方法C言語で文字型変数を宣言する際は、char 型を使用します。文字定数はシングルクォーテーション( )で囲んで指定します。char a = A; /* 文字定数を使用した宣言 */このように宣言することで、変数 a に1文字分のデータを格納できます。文字入出力関数の種類C言語には、文字を入出力するための関数がいくつか用意されています。代表的なものは以下の3組です。scanf / printf: 書式指定