这个问题谁懂的在帮我看看.
为什么这个程序输入一个字符串后,它会反序打印出来呢?请帮我详解一下...谢谢#include<stdio.h>
#include<ctype.h>
main()
{
char s[80];
void re(char *);
gets(s);
re(s);
}
void re(char *s1){
if(*s1=='\0')
return;
else{
re(s1+1);
putchar(*s1);
}
}
#include<stdio.h> #include<ctype.h> void main() { char s[80];//字符数组 void re(char *);//函数声明 参数为字符串的地址 gets(s);//获取字符串 re(s);//倒置输出字符串 } void re(char *s1){ if(*s1=='\0') //如果字符串为空 '\0'为字符串结束标志 编译系统会自动加上 return;//函数提前返回 else{ re(s1+1);//递归调用 来判断当前字符的下一个字符是不是'\0' putchar(*s1);//当某一次调用满足*s1=='\0' 就会返回到上一层调用 执行上一层的putchar(*s1); //上一层返回到上一层.........这样一直返回时逆序返回 也就实现了逆序输出 } }帮你谢了注释