この記事について
C言語基礎 第10回では、C言語における配列とその操作方法について解説しています。配列の宣言方法から要素へのアクセス方法、配列の操作方法を具体例を使ってわかりやすくご紹介していきます。
C言語のプログラミング学習を始めた方や、配列の概念をより深く理解したい中級者の方にとって、この記事はピッタリな内容になっています。
C言語の配列について
1. 配列とは
配列とは、複数のデータを1つの識別子にまとめて格納するためのデータ構造です。配列を使用することで、複数の値を管理しやすくなります。今までの記事では変数を使い、あるデータを保持するという機能を学習しましたが、例えば「ある学級の国語の点数を変数に格納する」という処理の場合、人数分変数を用意するのは非常に効率が悪く、プログラムの不備が発生するだけでなくメンテナンス性も悪くなってしまいます。このように関連性のあるデータに関しては配列という機能を用いて一つのグループにまとめるという考え方が用いられています。
配列の宣言と初期化
配列の宣言には主に以下の3つのパターンが存在します。
1. 配列を宣言するだけの場合
データ型[要素数] 配列名;
例:
int[10] numbers;
上記の例ではint型の要素を10個格納できる配列であると判断できます。
2. 配列を宣言して要素を初期化する場合
データ型[] 配列名 = {要素1, 要素2, 要素3, ...};
例:
int[] scores = {60, 77, 90, 100, 76};
上記の例のように、配列を初期化(宣言時にデータを格納)する場合は、要素数の指定を割愛することができます。
配列の要素へのアクセス
配列に格納した要素は、変数のように名前がついていません。配列の要素にアクセスするには、「配列の○○番目」のように指定します。使い方は、配列名の後ろに”[インデックス]”を付け加えます。インデックスは0から始まり、要素の位置を表します。
配列名[インデックス]
例えば、先ほどのnumbers配列の2番目の要素にアクセスする場合は次のようになります。
int number = numbers[1];
ここで、numbers[1]は2番目の要素を表し、その値をnumber変数に代入しています。
配列の要素は[0]から始まります。
配列の操作
配列にはさまざまな操作があります。ここでは、配列の要素の変更、配列の長さの取得、配列のコピーについて説明します。
配列の要素の変更
配列の要素には、インデックスを指定して値を代入することで変更することができます。
配列名[インデックス] = 新しい値;
例えば、numbers配列の3番目の要素を42に変更する場合は次のようになります。
numbers[2] = 42;
このコードでは、numbers[2]の値を42に変更しています。
配列の長さの取得
配列の長さ(要素の個数)を取得するには、sizeof演算子を使用します。
sizeof 式
sizeof (型)
sizeof演算子はその名の通り、データの大きさを調べるという演算子です。ここでいうデータの大きさとは、メモリに保存される際のバイト数と考えてください。変数や配列を使用する際にはデータの型の指定が必要でしたが、それはメモリに対して、「int型のデータが入るだけのスペースを確保してください。」という依頼を出してるという意味もあります。例えば、numbers配列の長さを取得する場合は次のようになります。
int arr[] = {10, 20, 30, 40, 50};
int num = sizeof(arr) / sizeof(arr[0]);
printf("配列の要素数: %d\n", num);
printf("配列のサイズ: %zuバイト\n", sizeof(arr));
上記の例では、arr
は5つのint型要素を持つ配列であり、それぞれのint型のサイズは通常4バイトです。そのため、sizeof(arr)
は20バイト(5要素 × 4バイト/要素)となります。注意として、sizeof演算子の結果をprintf関数などで出力する場合、フォーマット指定子は”%zu”となります。
まとめ
今回はC言語における配列についてご紹介いたしました。
最初は戸惑う部分もあるかもしれませんが、配列はC言語のプログラミングで多用する機能なので基本が身につくまで繰り返し復習して取り組んでいきましょう。
コメント