以下程序的執行什麼是綁定在一個時間在堆棧變量的最大數量時:如何找到變量的最大數量在堆棧
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