今天晚上有個姐妹給我發了一道題,題中的**量不大,但非常考驗對static的用法,如果沒有理解清楚,可能就會跟我一樣想了半天還是不會。
static靜態變數的生存期是整個程式的執行期,它被定義後就一直存在,要保留某個函式的中間結果,就可以用靜態變數。
#include
int a=4;
//全域性變數
intf
(int n)
else
return t+a++
;int
main()
首先第一次迴圈i=0;
進入f(i)0對2區餘為假
進入else a=7;t=7。
跳出if語句後a又成為5
返回值是12.
此處static int a=6;
第二次迴圈i=1;a=6;t=6.
跳出if語句後就成t=6+static的這個a(6)
返回12.
加起來是24,之後在加上句首定義的int a=4;
12+12+4=28.
return t+a++等於return t+(a++)
a應該是static,才有意義
C語言之static靜態變數
1.static 變數 靜態變數的型別 說明符是static。靜態變數當然是屬於靜態儲存方式,但是屬於靜態儲存方式的量不一定就是靜態變數。例如外部變數雖屬於靜態 儲存方式,但不一定是靜態變數,必須由 static加以定義後才能成為靜態外部變數,或稱靜態全域性變數。2.靜態區域性變數 靜態區域性變數屬...
C語言之static靜態變數
靜態變數是一種生存期為整個源程式的量。雖然離開定義它的函式後不能使用,但如再次呼叫定義它的函式時,它又可繼續使用,而且儲存了前次被呼叫後留下的值。1.static 變數 靜態變數的型別 說明符是static。靜態變數當然是屬於靜態儲存方式,但是屬於靜態儲存方式的量不一定就是靜態變數。例如外部變數雖屬...
static 靜態變數
function a a a a 輸出什麼是static靜態變數?以下為在c語言中的理解 靜態變數 型別說明符是static。靜態變數屬於靜態儲存方式,其儲存空間為記憶體中的靜態資料區 在靜態儲存區內分配儲存單元 該 區域中的資料在整個程式的執行期間一直占用這些儲存空間 在程式整個執行期間都不釋放 ...