C++靜態變量(static):作用與使用場景
C++中`static`關鍵字修飾變量、函數及類成員時,核心區別在於**作用域**和**生命週期**。以下是靜態變量的三類典型場景及特點: ### 1. 局部靜態變量(函數內) 在函數內用`static`修飾,作用域僅限函數內,生命週期貫穿程序始終,首次調用時初始化(默認0)。用於函數多次調用間“記憶”狀態(如計數器),避免全局變量污染。 ### 2. 全局靜態變量(文件內) 函數外用`static`修飾,作用域僅限當前源文件,生命週期程序級,初始化早於`main`。用於文件內私有全局數據,避免跨文件命名衝突(對比普通全局變量)。 ### 3. 類靜態成員變量(類級別) 類內聲明、類外初始化,所有實例共享,生命週期程序級。用於跨實例共享數據(如統計實例數量),需通過`類名::`訪問,避免依賴未初始化變量。 **注意事項**:避免濫用靜態變量(易引發多線程競態條件),注意初始化順序,命名規範用`類名::`顯式訪問。合理使用
閱讀全文