Tôi đã chơi xung quanh với đệ quy và đã làm chức năng đơn giản này. Tôi đã giả định rằng nó sẽ in ra 9-0 để stdout, nhưng, nó in 0-9. Tôi không thể thấy điều đó xảy ra chút nào.Hàm đệ quy này giải đố tôi, chuyện gì đang xảy ra?
int main()
{
rec(10);
return 0;
}
int rec(int n){
if(n > 0)
printf("%d\n", rec(n -1));
return n;
}
Nếu các giải thích bên dưới không 'nhấp', bạn có thể làm tốt để thực hiện bước trong trình gỡ lỗi để xem điều gì đang diễn ra. –
Nhân tiện, trong khi một lập trình giỏi được mong đợi có thể đọc được chức năng này (trong một cuộc phỏng vấn có thể?), Họ không nên viết mã như thế này. Mã tốt không nên làm cho bạn nghĩ. –