Menu
CoddyTech

配列と関数

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);

星印 (*) の構文は、次のコースで説明するポインターを指します。

自分で試してみよう

このレッスンにはコードチャレンジは含まれていません。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: C++オンラインコンパイラ