要素へのアクセス
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引数はすでにゼロ始まりです。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オンラインコンパイラ