1樓:網友
static變數static宣告的變數為「靜態區域性變數」,變數內容具有永續性。
該區域性變數的值在函式呼叫結束之後不會消失,而仍然保留其原值。即它所佔用的儲存單元不釋放,在下一次呼叫該函式時,其區域性變數的值仍然存在,也就是上一次函式呼叫結束時的值。
return m++前置++是用之前就加1,用的人拿到的一定是新值;後置++是用完之後才加1,用的人拿到的是舊值。
m++中的加法確實做了,而且是在return之前做的,只不過返回值早就儲存好了,而且是m在執行加法之前的值。
綜述:
第1次:返回0,m變成1
第2次:返回1,m變成2
第3次:返回2,m變成3
第4次:返回3,m變成4
第5次:返回4,m變成5
望。
2樓:網友
除了範圍之外,變數還有存活期,在這一期間變數能夠保持它們的值。在存活期內一直保持模組級變數和公用變數的值,但是對於dim宣告的區域性變數以及宣告區域性變數的過程,只有在過程執行時這些區域性變數才存在。
通常,當乙個過程執行完畢,它的區域性變數的值就已經不存在,而且變數所佔據的記憶體也被釋放。當下一次執行這個過程時,其所有區域性變數將被重新初始化。 §可以把區域性變數定義成靜態的,從而保留變數的值。
在過程內部用關鍵字static宣告乙個或幾個變數,其用法和dim語句完全一樣:
static 變數 as 型別。
為了使過程中所有的區域性變數為靜態變數,可以在過程頭的起始處加上關鍵字static。這就使過程中的所有區域性變數都變為靜態,無論它們是用static、dim或private宣告的還是隱式宣告的。可以在static放在任何sub或function過程頭的前面,包括事件過程和宣告為private的過程。
希望我能幫助你解疑釋惑。
3樓:網友
這不是很明顯嘛,func先被呼叫4次(i從1到4,迴圈呼叫4次),列印輸出再呼叫一次,m++後加操作,因此要少算一次,也就是4+1-1=4.
c語言中靜態變數是怎麼用的
4樓:教育仁昌
c語言中靜態變數作常量使用,用於儲存常數。可用const,constant或final等關鍵字標識,其值就會在編譯時設定,並且無法在執行時改變。編譯器通常將靜態常量與文字一起置於目標檔案的文字區域,而非常量初始化資料則置於資料區;而如若有需要,有些編譯器還可選擇為其開闢專用區。
對於靜態全域性變數來說,針對某一原始檔的以static宣告的檔案級變數與函式的作用域只限於檔案內(只在檔案內可見),也即「內部連線」,因而可以用來限定變數的作用域。
5樓:及採表含之
就是全域性變數啊,比如如果需要計數然後那個函式需要一次次的被重新利用,那就需要靜態變數了啊,靜態變數不會因為區域性函式被清空而清空而是會一直被保留。
6樓:想了解世界全貌
靜態區域性變數(靜態變數)是在編譯時賦初值的,即值賦初值一次,在程式執行時它已有初值,以後每次呼叫函式式不在重複賦初值而只在保留**函式呼叫結束時的值。
7樓:網友
使被呼叫函式呼叫結束後,被呼叫函式中的靜態變數不會被釋放,並保留上一次呼叫的值。
8樓:剪影傷城
#include""
void main()
int f(int a)
所以執行的結果為:7,8,9
注:靜態區域性變數(靜態變數)是在編譯時賦初值的,即值賦初值一次,在程式執行時它已有初值,以後每次呼叫函式式不在重複賦初值而只在保留**函式呼叫結束時的值。
9樓:o粉紅色的夜空
靜態變數的型別說明符是static。 靜態變數當然是屬於靜態儲存方式,但是屬於靜態儲存方式的量不一定就是靜態變數, 例如外部變數雖屬於靜態儲存方式,但不一定是靜態變數,必須由 static加以定義後才能成為靜態外部變數,或稱靜態全域性變數。 對於自動變數,它屬於動態儲存方式。
但是也可以用static定義它為靜態自動變數,或稱靜態區域性變數,從而成為靜態儲存方式。 由此看來,乙個變數可由static進行再說明,並改變其原有的儲存方式。
c++的類中怎麼用靜態變數?
10樓:信必鑫服務平臺
c++類支援靜態成員變數,在使用的時候,遵循類內宣告,類外定義的原則。即在類內部進行宣告該變數的型別以及靜態屬性,但不可以賦初始值,而是要在類外定義,同時賦初始值。
初始值部分,=init_value可以省略,省略時預設賦值為0。
在使用上:1 成員函式均可使用靜態變數;
2 如果靜態變數屬性為public,那麼任意乙個物件a均可使用靜態變數var,使用形式為 ;
3 如果靜態變數屬性為public,那麼可以用如下形式,在類class_type有效的範圍內,使用靜態變數var:;
c中靜態變數和方法用什麼用處,C 中靜態變數和方法用什麼用處
1 靜態變數 在c 程式中,沒有全域性變數的概念,這意味著所有的成員變數只有該類的例項才能操作這些資料,這起到了 資訊隱藏 的作用。但有些時候,這樣做卻不是個明智的選擇。假設我們要定義一個圖書類,要求該類能儲存圖書的數量,即每增加一本圖書 定義一個例項 圖書的數量應該加1。如果沒有靜態變數,我們需要...
程式語言中靜態和動態的區別,靜態程式語言和動態程式語言的聯絡
隨便找一本程式設計的書都有啊。不同的語言,靜態和動態的概念不完全一樣。通常來講,靜態,就是不可以改變,動態可以改變。對於類來說,靜態就是可以直接用,動態就是需要先生成一個例項,初始化以後才可以用。靜態程式語言和動態程式語言的聯絡 採用靜態型別和動態型別程式設計正規化的程式語言的區別 型別這塊東西抄內...
C語言中的問題,c語言中 p , p 的問題
講一下vc6.0的流程 1.a 0 前置自減運算子先運算,結果使a 02.a a 0 後置運算子在表示式中先使用,後運算,所以a 的值還是0 3.0 a 0 後置運算子在表示式中先使用,後運算,所以a 的值還是0 4.0 a 0 1 1 前置運算子先運算,結果使a變為1 所以結果sum 1 運算後,...