第三題求助
慕斯卡0112955
2017-09-13 20:56:58
TA貢獻28條經驗 獲得超15個贊
選C?:26? ,因為在incre函數中,x被定義為static,就是當incre函數調用結束之后,x的值依然在內存中保存,所以第一次調用incre函數之后,x的值是2,并輸出,第二次調用incre函數時,x的值是2,計算之后是6,并輸出。
TA貢獻195條經驗 獲得超115個贊
C
百度百科:static
靜態局部變量有以下特點:
該變量在全局數據區分配內存;
*靜態局部變量在程序執行到該對象的聲明處時被首次初始化,即以后的函數調用不再進行初始化;
靜態局部變量一般在聲明處初始化,如果沒有顯式初始化,會被程序自動初始化為0;
它始終駐留在全局數據區,直到程序運行結束。但其作用域為局部作用域,當定義它的函數或語句塊結束時,其作用域隨之結束;
TA貢獻1017條經驗 獲得超1032個贊
靜態變量的賦初值語句只會被執行一次,以后的初值是上一次函數調用結束后靜態變量的值,
循環2次,第一次初值是1,x=1*(1+1),調用結束后輸出2,x的值保留為2,第二次,賦值語句失效,直接執行x=2*(2+1)輸出6
結果輸出26
不過這里incre()函數沒有函數聲明,運行會報錯,兩個函數默認為int類型的返回值也沒有....
TA貢獻3593條經驗 獲得超0個贊
舉報