c++ 递归函数怎么解决啊求代码

void repeat(int m)
{
cout << m;
if (m>1)
{

    repeat(--m);
    cout << m << endl;
}

}
int main()
{

int h = 5;
repeat(h);

}
返回是输出1-5
求 1-5的数字是怎么存的怎么来的

这个判断 if (m>1),就会执行repeat(--m);

你输入5 然后执行repeat(5),输出5,然后就会到if语句中,repeat(--m)执行之后先m自减1,再进入repeat(4),执行的就是4了,就这样一直到1,因为1不是大于1,所以返回上一层,一直返回到最上层,最上层不是执行到repeat(5)了么,再向下执行cout << m << endl,输出1

 void repeat(5)
{
cout << 5;
if (m>1)
{
// repeat(4)
//{
cout << 4;
if (m>1)
{
    repeat(3);
    cout << 3 << endl;
}
//}
    cout << m << endl;
}
}

就相当于这样表示