找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2633|回復: 2
收起左側

C語言變量的作用域與存儲類型

[復制鏈接]
ID:693666 發(fā)表于 2020-2-15 22:36 | 顯示全部樓層 |閱讀模式
1 變量的定義三方面:
(1)數(shù)據(jù)類型:占用內存空間大小(int,double等)
(2)作用域:有效性范圍
(3)存儲類型:在內存的存儲方式

  • 這里又引入一個概念-“生存期”,即變量在程序中的建立和消亡時間
存儲類型決定變量的生存期和作用域

2 在內存中,供用戶使用的三種空間:
(1)程序區(qū):存放代碼
(2)靜態(tài)和動態(tài)存儲區(qū):存放數(shù)據(jù)
a.靜態(tài)存儲區(qū):在編譯時就分配了內存空間,在整個程序執(zhí)行中,內存單元一直保持到程序結束才釋放
b.動態(tài)存儲區(qū):只有當程序執(zhí)行到變量所在的函數(shù)被調用時,系統(tǒng)才為其分配內存空間,函數(shù)調用結束,變量即被釋放,
  
  
  
何時分配內存空間
  
  
何時釋放
  
  
生存期
  
  
靜態(tài)存儲區(qū)
  
  
在程序編譯時
  
  
程序結束
  
  
整個程序的運行期間
  
  
動態(tài)存儲區(qū)
  
  
只有當程序執(zhí)行到變量所在的函數(shù)被調用時
  
  
函數(shù)調用結束
  
  
函數(shù)的調用期間
  


3 變量的分類
(1)局部變量:在一個函數(shù)內部或者某個復合語句內部定義的變量
(2)全局變量:在所有函數(shù)外部定義的變量。(默認初值為0)
  
  
  
作用域
  
  
存放區(qū)域
  
  
特點
  
  
局部變量
  
  
局限于定義它的函數(shù)或復合語句
  
  
動態(tài)存儲區(qū)
  
  
在不同的函數(shù)中允許同名,
  
如果變量名相同,則當前局部變量優(yōu)先
  
  
全局變量
  
  
從定義變量的位置開始到源程序結束
  
  
靜態(tài)存儲區(qū)
  
  


       


         
    • 若局部變量與全局變量同名,則局部變量優(yōu)先,即在該函數(shù)或復合語句內,全局變量不起作用;
    • 如果要在變量定義之前使用它,需用extern加以聲明可擴展全局變量作用域;
      
  


回復

使用道具 舉報

ID:446775 發(fā)表于 2020-2-16 12:12 | 顯示全部樓層
受教了!
回復

使用道具 舉報

ID:691354 發(fā)表于 2020-2-18 19:34 | 顯示全部樓層
局部變量一定存在動態(tài)存儲區(qū),全局變量一定存在靜態(tài)存儲區(qū),這句話對嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表