有下列程序:fun (int x,int y) {static int m=0,i=2; i+=m+1;m=i+x+y;return m; } main() {
有下列程序:
fun (int x,int y)
{static int m=0,i=2;
i+=m+1;m=i+x+y;return m;
}
main()
{int j=1,m=1,k;
k=fun0,m);printf("%d,"k);
k=fun0,m);printf("%d\n",k);
}
執(zhí)行后的輸出結(jié)果是( )。
A.5,5
B.5,11
C.11,11
D.11,5
正確答案:B解析:子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第1次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第1次函數(shù)調(diào)用結(jié)束時(shí),它們的值不釋放保持不變,所以第2次調(diào)用時(shí),局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時(shí),i的值為9,因此,最終m的值為11。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。