以下程序的执行什么是绑定在一个时间在堆栈变量的最大数量时:如何找到变量的最大数量在堆栈
int x, y, z;
int g(int a, int b) {
int c = 5 * a + b;
return c;
}
int f(int a, int b) {
a = g(a, 5);
return g(b, a);
}
int main() {
int a, b, c;
x = y = z = 0;
a = 5; b = 6;
c = f(a, b);
printf("%d", c);
}
如果有谁知道请如何发现。你能解释我该怎么做才能在每个可能给出的代码中找到它。 没有任何优化。
又如:
int x,y;
int f(int a){
if (a!=5)
return f(--a);
else
return a;
}
int main(){
int a,b;
a=8;b=6;
x=f(a);
y=f(b);
printf("%d", x+y);
return 0;
}
这是答案6以上?因为第一次返回,返回一个变量3次..第二次返回一次返回一个数字,我们有两个变量在主要所以6?
@Ilya我认为根据您的约定编辑代码可能不是最好的事情,并且不遵循SO规则。 – tomsoft 2014-10-16 10:23:14
@tomsoft,感谢您的反馈!我会再读一遍SO规则。 (对我来说,很难阅读问题的初始版本,所以我决定改进它,但可能是错误的决定,谢谢!) – Ilya 2014-10-16 10:25:56