我一直在做一個練習的遞歸函數,還有一個讓我很困惑的部分。這裏就是整個代碼如下所示:瞭解遞歸函數
void RekFunkcija(int * pok, int max)
{
if (max != 0)
{
cout << pok[max - 1] << endl;
RekFunkcija(pok + 1, max - 1);
}
}
void main()
{
const int max = 5;
int niz[] = { max, 63, max, 126, 252 };
RekFunkcija(niz, max);
}
所以這裏的輸出是:
什麼一直困惑我的是遞歸函數的這一部分:cout << pok[max - 1] << endl;
我不明白爲什麼它是否始終輸出數組的最後一個成員(252)?索引號(max-1)遞減1?不應該輸出:252,126,5,63,5?這與pok+1
的論點有什麼關係? 預先感謝您。
學+ 1學更換。 http://ideone.com/RjsQX3 –