第一次调用的是fun(z),执行"if(c>'x') fun(c-1);"时,调用fun(y);
进入函数fun(y)中,y是参数,执行"if(c>'x') fun(c-1);"时,调用fun(x);
进入函数fun(x)中,x是参数,执行"if(c>'x') fun(c-1);"时,条件不成立,转向执行"printf("%c",c);",
输出x;
第三次调用的函数fun(x)结束,程序转向fun(y)中,顺序执行"printf("%c",c);",
输出y;
第二次调用的函数fun(y)结束,程序转向fun(z)中,顺序执行"printf("%c",c);",
输出z;
函数调用涉及到“栈”,很麻烦,大概是这个样子。