一个没曾摸透的程序

void fun(char *p)

{

  if(*p=='')

   return ;

   fun(p+1);

   printf("%c",*p);

}

int main()

{

 char *str="hello";

 fun(str);

 return 0;

}

将这个程序的printf()放在fun()之前输出的结果不一样。我认为这是递归调用的时候改变了p的指向。

我将类型改写成int型,出现一堆乱码。那么谁能清楚地解释一下呢?

原文地址:https://www.cnblogs.com/jfyl1573/p/6477140.html