Menu
Coddy logo textTech

배열과 함수

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

배열은 전체 배열로서 함수에 직접 전달될 수 없습니다. 배열을 함수에 전달하려고 하면, 배열은 첫 번째 요소를 가리키는 포인터로 "퇴화(decay)"합니다.

예를 들어:

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

별표 (*) 구문은 다음 코스에서 다룰 포인터를 나타냅니다.

치트 시트

배열은 함수에 직접 전달될 수 없습니다 - 배열은 첫 번째 요소를 가리키는 포인터로 "퇴화(decay)"합니다.

함수에 배열을 전달할 때는 크기를 별도의 매개변수로 전달해야 합니다:

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* newArr = processArray(arr);

직접 해보기

이 레슨에는 코드 챌린지가 없습니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨