C語言裡面靜態變數static學習筆記

2021-10-03 05:08:20 字數 651 閱讀 6951

今天晚上有個姐妹給我發了一道題,題中的**量不大,但非常考驗對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。靜態變數屬於靜態儲存方式,其儲存空間為記憶體中的靜態資料區 在靜態儲存區內分配儲存單元 該 區域中的資料在整個程式的執行期間一直占用這些儲存空間 在程式整個執行期間都不釋放 ...