递归过程:f(20){ f(8); { f(2); { f(-1); { 函数递归结束; printf("-1"); } primtf("2"); } primtf("8"); } primtf("20");}/*每个递归函数都由子函数调用和本身的其他语句组成.这些都要一步一步执行完.*/
fun(int x){ if(x/2>0) fun(x/2-2); printf("%d",x);}fun(int x){ if(x/2>0) { fun(x/2-2); printf("%d",x); }}注意两者的区别
当-1为参数传进去的时候,由于-1/2<0,所以不会继续递归下去,于是转而执行下一个语句,即输出-1.因此不是说f(-1);不会执行.f(-1){ (-1/2<0)不成立,所以不会继续递归. printf("-1"); //但这个还是会执行的.}
没人能回答我吗?
但f(-1)这个函数并没有结束的.