Menu
CoddyTech

배열과 함수

Coddy C++ 여정의 기초 섹션에 포함된 레슨. 74개 중 62번째.

배열 전체를 그대로 함수에 직접 전달할 수는 없습니다. 배열을 함수에 전달하려고 하면 배열은 첫 번째 요소를 가리키는 포인터로 "변환됩니다".

예를 들어:

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++ 컴파일러