主题:不懂就问
本人刚学C,在学函数章时对那个递归不是很了解,现想请教一下:
#include<stdio.h>
void main()
{char *a="1234";
fun(a);
printf("\n");
}
fun(char *s)
{
char t;
if(*s)
{t=*s++;fun(s);}
else return;
if(t!='\0')
putchar(t);
}
其实在那个fun()函数的递归过程我不是很了解;
而且,如果我改成*a="1";,在fun()中删去else return;这句,输出的结果就会变成
" 1"多了一个空隔,如不不删else return的话就没有空隔,我不太了解这个过程,求教高手讲解一下。
#include<stdio.h>
void main()
{char *a="1234";
fun(a);
printf("\n");
}
fun(char *s)
{
char t;
if(*s)
{t=*s++;fun(s);}
else return;
if(t!='\0')
putchar(t);
}
其实在那个fun()函数的递归过程我不是很了解;
而且,如果我改成*a="1";,在fun()中删去else return;这句,输出的结果就会变成
" 1"多了一个空隔,如不不删else return的话就没有空隔,我不太了解这个过程,求教高手讲解一下。