C語言中的靜態變量具有以下特點:
- 生命周期:靜態變量在程序運行期間保持存在,其生命周期與程序的整個執行期間相同。與之相對的是局部變量,其生命周期僅限于其所在的代碼塊內。
- 作用域:靜態變量的作用域為局部作用域,與其所在的函數或代碼塊相對應。在函數內部定義的靜態變量只能在函數內部使用,而在代碼塊內部定義的靜態變量只能在代碼塊內部使用。
- 初始化:靜態變量的初始化只會在程序執行過程中進行一次,即使進入其作用域多次。未顯式初始化的靜態變量會被自動初始化為0。
- 存儲位置:靜態變量存儲在靜態數據區,該區域在程序運行期間一直存在,不會隨著函數或代碼塊的退出而銷毀。
- 默認可見性:靜態變量默認情況下只能在其所在的源文件中訪問,其他源文件無法直接訪問。可以通過使用extern關鍵字聲明外部變量來使其在其他源文件中可見。
總之,C語言中的靜態變量具有全局可見性、持久性、唯一性和默認初始化等特點。