저는 C++을 처음 접했고 지금은 재귀를 학습하고 있습니다. 재귀를 사용하여 끝에 배열의 인덱스를 시작하지 않고 역순으로 요소를 표시하려고했습니다.배열을 역순으로 인쇄하는 재귀 적 솔루션 이해
물론 루프를 사용하는 것이 매우 쉽지만 재귀 사용은 다른 문제입니다. 나는이 문제에 대한 해결책을 온라인에서 찾았지만 각 값을 정확히 출력 할 수있는 방법을 이해할 수는 없다.
int main() {
int values[5] = {1,2,3,4,5}
recArrayBackPrint(values,5);
}
내가 할 수있는 :
void recArrayBackPrint(int array[],int size)
{
if (size > 0)
{
recArrayBackPrint(array+1,size-1);
cout << array[0] << " ";
}
// base case is empty array (size == 0), so do nothing
}
나는이 경우, 배열 + 1은 같은 것을 사용하여 추적하는 시도 후 현재 요소 + 1에있는 메모리 주소를 참조 할 것이라는 점을 이해 크기가 0 인 모든 방법을 얻지 만 여전히 배열 [4], 배열 [3] .. 등을 인쇄 할 수 있을지 전혀 모르겠다. 내 생각에는 recArrayBackPrint를 치고 모든 방향으로 가야한다. 크기를 0으로 설정 한 다음 아무 것도하지 않습니다.
그래서 정확히 무슨 일이 벌어지고 있습니까?