要素へのアクセス
CoddyのCジャーニー「基礎」セクションの一部。レッスン 54/63。
配列には同じ型の複数の値が格納されます。配列内の個々の要素にアクセスするには、インデックス位置を使用します。
Cでは、配列のインデックスは0から始まります。つまり、最初の要素はインデックス0にあり、2番目の要素はインデックス1にあり、そのように続きます。
5 個の要素を持つ整数配列を作成します。
int numbers[5] = {10, 20, 30, 40, 50};最初の要素(インデックス 0)にアクセスします。
int firstElement = numbers[0];上記のコードを実行すると、firstElement には次の値が含まれます。
103 番目の要素(インデックス 2)にアクセスします。
int thirdElement = numbers[2];これにより、値 30 が thirdElement に格納されます。
配列の範囲外の要素(今回の例でいうと numbers[5] など)にアクセスしようとすると、未定義の動作につながり、プログラムがクラッシュする原因になることがあります。
チャレンジ
簡単getElementという名前の関数を書いてください。この関数は次のことを行います。
- 整数配列とそのサイズをパラメーターとして受け取る
- インデックスのパラメーターを受け取る
- インデックスが有効な場合(配列の範囲内の場合)、そのインデックスの要素を出力する
- インデックスが無効な場合(配列の範囲外の場合)、
Index out of boundsを出力する
indexパラメーターはすでに0始まりです。arr[index]としてそのまま使用してください(インデックス5は6番目の要素です)。有効なインデックスは0からsize - 1までです。
自分で試してみよう
#include <stdio.h>
void getElement(int arr[], int size, int index) {
// ここにコードを書いてください
}
int main() {
int size, index;
// 配列のサイズを読み取る
scanf("%d", &size);
int arr[size];
// 配列の要素を読み取る
for(int i = 0; i < size; i++) {
scanf("%d", &arr[i]);
}
// アクセスする要素のインデックスを読み取る
scanf("%d", &index);
getElement(arr, size, index);
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Cオンラインコンパイラ