關於C 的靜態變數用法

2022-07-01 17:20:15 字數 765 閱讀 6888

1樓:匿名使用者

返回的是7的

函式在呼叫的時候,實參是參與到函式的運算當中的。這裡,你的這句表述的是正確的:「還是說執行的時候直接把a=2帶入到呼叫函式中計算,呼叫函式中計算完後直接返回一個7」

這裡的函式呼叫跟靜態變數沒有關係的,函式內的靜態變數的用法,可以參考下面的:

(1)靜態區域性變數在函式內定義,但不象自動變數那樣,當呼叫時就存在,退出函式時就消失。靜態區域性變數始終存在著,也就是說它的生存期為整個源程式。

(2)靜態區域性變數的生存期雖然為整個源程式,但是其作用域仍與自動變數相同,即只能在定義該變數的函式內使用該變數。退出該函式後, 儘管該變數還繼續存在,但不能使用它。

(3)允許對構造類靜態區域性量賦初值。若未賦以初值,則由系統自動賦以0值。

(4)對基本型別的靜態區域性變數若在說明時未賦以初值,則系統自動賦予0值。而對自動變數不賦初值,則其值是不定的。 根據靜態區域性變數的特點, 可以看出它是一種生存期為整個原始檔的量。

雖然離開定義它的函式後不能使用,但如再次呼叫定義它的函式時,它又可繼續使用, 而且儲存了前次被呼叫後留下的值。 因此,當多次呼叫一個函式且要求在呼叫之間保留某些變數的值時,可考慮採用靜態區域性變數。雖然用全域性變數也可以達到上述目的,但全域性變數有時會造成意外的***,因此仍以採用區域性靜態變數為宜。

2樓:軍軍

返回的是2+1+4=7

3樓:匿名使用者

是執行的時候直接把a=2帶入到呼叫函式中計算,呼叫函式中計算完後直接返回一個7

C中的靜態變數和常量有什麼具體的區別?請詳細說一下,我看了概念總感覺這兩者很像

靜態變數 來也是變數,但就這自一點就和常量 不一bai樣 常量的du值是不可改變的,zhi在程式運dao行的時候就已經決定了它的值 但是靜態變數的值是可以在執行時被更改的,它們唯一的共同點只是在程式的一開始就存在於記憶體當中,僅此而已 靜態用於多個客戶端訪問同樣的資料 例如電影院買票系統 常量用於在...

lua如何實現靜態變數,多次呼叫同函式時,只初始化一次指定的變數值沒啥分,謝謝幫忙

1 把內容單獨放一個檔案裡lua檔案裡 local i 0 function test if i 5 then i i 1 end end 2 或者寫個生成函式 function create test local i 0 return function if i 5 then i i 1 end ...

c 入門關於while的用法,c 中while的用法

糾正一下,你用c 最好在最前面這樣寫。include using namespace std 不可以寫while a 1 要寫成while a 1 才可以的,你要好好補一下基礎。最後那個return 0 是告訴系統,你的程式正確退出了,如果你不寫,編繹器也會自動給你加上去的。while a 只要a ...