本文目錄一覽:
C語言中的靜態變數
其實是這樣的。靜態變數在內存中存儲的位置,與全局變數是同一個區域。
所以,在編譯期間,它的存儲和大小就已經確定了,也就是已經分配了空間了。
而在c語言中,「分配內存」往往看做是變數被定義的一個標誌。
所以,你在運行程序的時候,由於靜態變數已經分配過內存了,不會再次進行分配了,它的定義語句就不會再次被執行了。
C語言動態變數和靜態變數的區別
一、形式不同:
靜態變數是在定義的時候,有static 修飾的變數,形式為static TYPE var_name = init_value;
動態變數,形式為TYPE var_name = init_value;即沒有static 修飾,其中的=init_value均可省略。
二、作用不同:
動態全局變數:作用域為整個項目,即最終編譯成可執行文件的所有文件中均可以使用動態全局變數,生命周期為從程序運行到程序退出,即貫穿整個運行時間。
靜態全局變數:作用域為當前文件,從定義/聲明位置到文件結尾,生命周期為從程序運行到程序退出,即貫穿整個運行時間。
常量使用
靜態變數也可以用於存儲常數。具體來說,靜態變數(全局變數及彙編語言里定義的符號亦同)可用const,constant或final(根據語言決定)等關鍵字標識,這時其值就會在編譯時設定,並且無法在運行時改變。
編譯器通常將靜態常量與文本一起置於目標文件的文本區域,而非常量初始化數據則置於數據區;而如若有需要,有些編譯器還可選擇為其開闢專用區;為防止常數變數被錯誤的指針寫入覆蓋,亦可在這塊區域啟用內存保護機制。
以上內容參考:百度百科-靜態變數
static在c語言中是什麼意思?
static在c語言中是「靜態」的意思,用於在函數中聲明「靜態變數」用,在每一次調用後,該變數並不在函數返回時立即釋放,變數中保存的值,可以保留到下一次調用時繼續有效。
原創文章,作者:LHCPS,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/315919.html