求解释 结果 还有为啥递归时是 reverse_str(buf+1,n-2) n-2是为何?
#include<stdio.h>
void reverse_str(char* buf, int n);
void main()
{
char ch[6]="abcde";
reverse_str(ch,5);
puts(ch);
}
void reverse_str(char* buf, int n)
{
if(n<2) return;
char tmp = buf[0];
buf[0] = buf[n-1];
buf[n-1] = tmp;
reverse_str(buf+1,n-2);
puts(buf);
}
结果是:dcba
edcba
edcba