void fun(char *p)
{
if(*p=='\0')
return ;
fun(p+1);
printf("%c",*p);
}
int main()
{
char *str="hello";
fun(str);
return 0;
}
将这个程序的printf()放在fun()之前输出的结果不一样。我认为这是递归调用的时候改变了p的指向。
我将类型改写成int型,出现一堆乱码。那么谁能清楚地解释一下呢?
void fun(char *p)
{
if(*p=='\0')
return ;
fun(p+1);
printf("%c",*p);
}
int main()
{
char *str="hello";
fun(str);
return 0;
}
将这个程序的printf()放在fun()之前输出的结果不一样。我认为这是递归调用的时候改变了p的指向。
我将类型改写成int型,出现一堆乱码。那么谁能清楚地解释一下呢?
相关文章: