배열과 함수
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);별표 (*) 구문은 다음 강의에서 다룰 포인터를 나타냅니다.
직접 해보기
이 레슨에는 코드 챌린지가 없습니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 C++ 컴파일러