实在没法理解划斜杠的这三行,尤其是我调试时n值是先减小后增加再减小,求理一理这个函数怎么递归的//汉诺塔问题

#include <stdio.h>
void hanoi(int n,char one,char two,char three);
void move(char x,char y);

int main()
{
    int m;
    printf("input the number of diskes:");
    scanf("%d",&m);
    printf("The step to move %d diskes\n",m);
    hanoi(m,'A','B','C');
    return 0;
}

void hanoi(int n,char one,char two,char three)
{
    void move(char x,char y);
    if (n==1) {
        move(one,three);
    } else {
        hanoi(n-1,one,three,two);//
        move(one,three);             //
        hanoi(n-1,two,one,three);//
    }
}

void move(char x,char y)
{
    printf("%c-->%c\n",x,y);
}

是汉诺塔问题