首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

C++ 變量存儲類別與作用域深度解析

     編輯:C++ 入門

存儲類別

靜態存儲

程序啟動即存在,生命周期贯穿整個程序。關鍵字 static、extern。分為:

  • 全局靜態變量:文件作用域,static 修飾,僅本文件可見
  • 局部靜態變量:函數內 static,函數作用域但生命周期全程
  • 全局變量:無 static,默認靜態存儲,整個工程可見(extern 聲明跨文件)

自動存儲

函數內局部變量(含 auto、register),進入塊創建,離開塊銷毀。register 建議存入寄存器,現代編譯器多自動優化。

作用域分類

作用域範圍示例
全局聲明處至文件末尾文件頂層變量
局部所在語句塊函數內、{} 內變量
函數原型參數列表void f(int x); 中的 x

名稱隱藏規則

內層塊聲明與外層同名標識符時,外層被隱藏直至內層塊結束。最小特權原則建議:優先用局部變量,避免全局變量與同名隱藏。

示例程序輸出分析

int a = 1;          // 全局 a=1
int main() {
    cout << a;      // 1
    int a = 10;     // 局部 a=10 隱藏全局
    cout << a;      // 10
    { int a = 7; cout << a; } // 7
    cout << a;      // 10 恢復外層局部
    use_Global();   // 訪問全局 a(若函數內無同名)
}

圖示展示了各作用域下 a 的值變化。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved