C return 语句
这个语句真是烦人
int a(){
return 3;
}
int b(){
}
int main(){
printf("%d",b());
return 0;
}
结果是得到1
如果将b函数改成int b(){a();}
那么结果将得到3,
如果是java则不会出现中问题。C实在是太接近底层了,主要的原因就是eax的赋值情况发生了改变,当使用return是就是将数值压入eax的数值中,然后返回主函数中。当时当递归回来的时候就还将eax的数值改变,所以写递归的时候不要希望把最终的结果return回来,这是错误的,应为回家的路有太多不确定的因素,所以正确的做法就是在相应的层,做相应的事,最用将所有的结果遍历。
当然也有非常完美的递归方法像阶乘,但是这个是个特例,不足以解决大部分的情况