配列と関数
CoddyのC++ジャーニー「基礎」セクションの一部。レッスン 62/74。
配列は、配列全体として関数に直接渡すことはできません。配列を関数に渡そうとすると、最初の要素へのポインターへと「変換」されます。
例:
int numbers[5] = {1, 2, 3, 4, 5};
void processArray(int arr[]) {
int size = std::size(arr);
}ここではstd::size(arr)はコンパイルできません。arrは実際には配列ではなくポインターであり、ポインターは配列のサイズを保持しないためです。ポインターについては次のコースで学びます。
そのため、配列を関数に渡すときは、通常、サイズを別の引数として渡す必要があります。
void processArray(int arr[], int size) {
// これで、size パラメータを使って配列を安全に扱えます
}関数の呼び出し方は次のとおりです。
int numbers[5] = {1, 2, 3, 4, 5};
processArray(numbers, 5);また、関数で配列を返すことはできません。
int[] processArray(int arr[]) {
return arr;
}これは不正です。代わりに、*構文を使う必要があります。
int* processArray(int arr[]) {
return arr;
}
int* newArr = processArray(arr);星印 (*) の構文は、次のコースで説明するポインターを指します。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: C++オンラインコンパイラ