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

C語言變量存儲類別詳解:自動、外部、靜態、寄存器全維度解析

     編輯:關於C語言

存儲方式與生存期

  • 靜態存儲:定義時分配固定單元,程序結束釋放(全局變量)
  • 動態存儲:調用時分配,返回即釋放(形參、局部變量)

生存期 = 變量存在的時間;作用域 = 變量可見的空間。兩者不同維度,需顯式聲明存儲類別。

四大存儲類別

關鍵字類型存儲方式
auto自動變量動態
register寄存器變量動態
extern外部變量靜態
static靜態變量靜態

完整聲明:存儲類別 數據類型 變量名,如 static int a[5]={1,2,3,4,5};

一、自動變量

  • 函數內無聲明默認 auto,可省略
  • 作用域限於定義塊(函數/復合語句)
  • 動態分配:調用創建,返回銷毀,值不保留
  • 復合語句內定義的變量,退出塊後不可用(否則報錯)
  • 不同塊可同名不衝突
  • 構造類型(數組等)不可初始化

二、外部變量

  • 全局變量從作用域稱「全局」,從存儲稱「外部」
  • 多文件項目:定義文件 int a,b; char c;,引用文件 extern int a,b; extern char c;(不重複分配內存)
  • 構造類型可初始化,未初始化自動置 0

三、靜態變量(下篇詳述)

  • 局部加 static → 靜態局部變量:生存期變全程,作用域不變
  • 全局加 static → 靜態全局變量:作用域限定文件內

四、寄存器變量(下篇詳述)

  • 存 CPU 寄存器,高頻讀寫提速
  • 僅限局部自動變量/形參
  • 部分編譯器視同自動變量
  • 寄存器數量有限
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved