1、通过递归的方式逆序打印
2、递归和全局变量(把逆序的结果存入全局变量)
3、递归和非全局变量(递归指针做函数参数)
全局变量
#include <stdio.h>
#include <string.h>
char g_buf[20];
void inverse(char *p)
{
if(p == NULL)
{
return ;
}
if(*p == '\0')
{
return ;
}
inverse(p+1);
strncat(g_buf,p,1);
}
int main()
{
char buf[] = "123456789";
memset(g_buf,0,sizeof(g_buf));
inverse(buf);
printf("%s\n",g_buf);
}
局部变量
#include <stdio.h>
#include <string.h>
void inverse(char *p,char *mybuf)
{
if(p == NULL)
{
return ;
}
if(*p == '\0')
{
return ;
}
inverse(p+1,mybuf);
strncat(mybuf,p,1);
}
int main()
{
char buf[] = "123456789";
char g_buf[20];
memset(g_buf,0,sizeof(g_buf));
inverse(buf,g_buf);
printf("%s\n",g_buf);
}