一个没曾摸透的程序

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型,出现一堆乱码。那么谁能清楚地解释一下呢?

 

posted @ 2017-02-28 01:19  浪_花  阅读(130)  评论(0编辑  收藏  举报