閑來無事在網上閑逛,看到百度知道有人問到一個關于靜態變量的使用問題,感覺很經典放到這里與各位共享。原問題如下:
函數f定義如下,執行語句“sum=f(4)+f(2);”后,sum的值應為( )。為什么不是A,而是C
int f(int m)
{ static int i=0; int s=0;
for(;i<=m;i++) s+=i; return s;
}
A、13
B、16
C、10
D、8
我的回答:
因為i為靜態變量,靜態變量的值從第一次使用而創建,到程序結束時才釋放內存,因為在調用f(4)后,i已經為5,當在調用f(2)時,i開始仍為5,由于i<=m的條件已經為假,故不再執行,因此最終為10即C。
新聞熱點
疑難解答
圖片精選