【C語言】static 變量及其作用


基本要點:

  • static 關鍵字可以修飾變量,可以修飾函數
  • 靜態變量的存儲方式與全局變量一樣,都是靜態存儲方式 (靜態存儲方式:指在程序運行期間分配固定的存儲空間的方式)
    • 靜態變量屬於靜態存儲方式,屬於靜態存儲方式的變量卻不一定就是靜態變量,例如全局變量。

隱藏與隔離的作用

  • 希望全局變量僅限於在本源文件中使用,在其他源文件中不能引用,可以通過在全局變量之前加上關鍵字 static 來實現,使全局變量被定義成爲一個靜態全局變量 (源文件指什麼,不太清楚,有人解釋一下嗎?是當前 c 文件?)

保持變量內容的持久性

  • 如果希望局部變量的值在函數調用結束之後不會消失,而仍然保留其原值。即它所佔用的存儲單元不釋放,在下一次調用該函數時,其局部變量的值仍然存在(也就是上一次函數調用結束時的值)
  • 則將該局部變量用關鍵字 static 聲明爲靜態局部變量
  • 這將改變局部變量的存儲位置,即從原來在中存放改爲在靜態存儲區存放
  • 靜態局部變量全局變量的主要區別就在於可見性,靜態局部變量只在其被聲明的代碼塊中是可見的

默認初始化爲 0:

  • 靜態數據區(靜態存儲區) 所有的字節默認值都是 0x00(未初始化的情況下)
  • 靜態變量全局變量一樣,都存儲在靜態數據區中,因此它們的默認值都爲 0

參考文章:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章