久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

 

變量的存儲小結

作者:呂老師,華清遠見教育科技集團講師。

變量是C語言(yan)基礎也是核心的(de)概念,對于初學(xue)C語言(yan)的(de)同學(xue)來(lai)說變量的(de)存儲總是覺得比較混亂。這里(li)對C的(de)變量做一個簡單(dan)的(de)小結(jie),希(xi)望對大家有所幫助(zhu)。

我們看(kan)(kan)到(dao)對(dui)變(bian)(bian)量的講解的時候看(kan)(kan)到(dao)很多概念,屬性,存儲期,內部鏈(lian)(lian)接(jie),外部鏈(lian)(lian)接(jie),空鏈(lian)(lian)接(jie),全(quan)局(ju)變(bian)(bian)量,局(ju)部變(bian)(bian)量,寄存器變(bian)(bian)量,靜態變(bian)(bian)量等(deng)(deng)等(deng)(deng)。看(kan)(kan)起來很混亂(luan),下面(mian)我們梳理一下。

其實我們再使用(yong)變(bian)量的(de)時候大多(duo)關心的(de)只有三個方(fang)面:變(bian)量的(de)存在期(qi),變(bian)量的(de)類型(xing),變(bian)量的(de)作用(yong)域。

我們(men)想一(yi)下(xia)變(bian)量的定義方法分為三部(bu)分:

<存儲類(lei)別> <變量的數據類(lei)型>  <變量名(ming)>

分別理解一下

變(bian)量名(ming)。這個非常簡單我(wo)們只要符合變(bian)量的命(ming)名(ming)規則就可以了,數字字母(mu)下劃線組(zu)成,字母(mu)或下劃線開頭,不能為(wei)關(guan)鍵字。

變量的(de)類型(xing)。這個也不(bu)難(nan)理解,我們(men)知道(dao)有整(zheng)形(xing)(int,long),字符型(xing)(char),浮點型(xing)(float,double),指針型(xing)(*)當然(ran)還有數組結構體等。相信這些我們(men)再熟悉不(bu)過(guo)了(le)。

存(cun)(cun)儲類別(bie)。這個(ge)(ge)是我們(men)今天討論的(de)(de)重點。數(shu)據的(de)(de)存(cun)(cun)儲類別(bie)決定(ding)了(le)一個(ge)(ge)數(shu)據的(de)(de)存(cun)(cun)在期和(he)作用域(yu),我們(men)先了(le)解一下存(cun)(cun)在期和(he)作用域(yu)這兩個(ge)(ge)概念(nian)。

存(cun)在期(qi)(qi):變(bian)量在內(nei)存(cun)中(zhong)保(bao)存(cun)的(de)時間。其實簡單的(de)說主要就兩種情(qing)況,一是(shi)隨函數的(de)調(diao)用(yong)(yong)而起作用(yong)(yong),隨函數的(de)結束(shu)而結束(shu)。二是(shi)作用(yong)(yong)于整個(ge)程序期(qi)(qi)間,直(zhi)到程序結束(shu)。

作(zuo)用(yong)域(yu):變量能(neng)夠(gou)有效作(zuo)用(yong)的區域(yu)。這(zhe)個(ge)簡(jian)單的說(shuo)有三種情況,一是(shi)只能(neng)作(zuo)用(yong)在(zai)一個(ge)代(dai)碼塊內(或(huo)者說(shuo)函數內),二是(shi)作(zuo)用(yong)于(yu)整個(ge)文件(或(huo)者說(shuo)程序)中,三是(shi)除(chu)了所在(zai)的文件別的文件也可以使用(yong)。

那么(me)說(shuo)了半天我們的(de)存(cun)儲(chu)類別(bie)(bie)是怎么(me)決定存(cun)在期和(he)(he)作用域的(de)呢。別(bie)(bie)急(ji),就是通(tong)過下面幾(ji)個(ge)關鍵(jian)字(zi)和(he)(he)變量(liang)定義所在的(de)位置(zhi)這兩(liang)個(ge)條件的(de)組合。

auto為存(cun)儲類(lei)說明符,可以說明一個變量為自(zi)動變量。省略存(cun)數類(lei)型時(shi)默認就是auto修飾(shi)。所(suo)修飾(shi)的全局變量在(zai)靜態區,局部變量在(zai)棧中。

register聲明的(de)變(bian)量屬于寄存器存儲類。所修飾的(de)變(bian)量都在寄存器中(zhong)保存。

static聲明的變量(liang)屬于(yu)靜態存(cun)儲類。所(suo)修飾的變量(liang)都在靜態區。

外部(bu)變(bian)量的函數中(zhong)使用extern關鍵字來再次聲明。

我(wo)們把這幾個關鍵字和位(wei)置的組合總(zong)結(jie)一下相(xiang)信會(hui)清楚很多(duo):

組合 存儲期 作用域 初始值
auto +定義在函數內 和函數同步 函數內 不確定
auto +定義在函數外 和程序同步 本文件(程序)和外部文件 0
static+定義在函數內 和程序同步 函數內 0

static+定義在函數外 和程序同步 本文件(程序)內 0

register + 定義在函數內 和函數同步 函數內 不確定

說明(ming)一下,register只(zhi)能修飾局部變量和(he)形參,因(yin)為在寄(ji)存(cun)器內所(suo)以沒有地址(zhi),也不可(ke)能是(shi)靜(jing)態的。

extern :外(wai)部引(yin)用(yong),當需(xu)要(yao)外(wai)部引(yin)用(yong)時使用(yong),就不做過(guo)多闡述了。

這里只(zhi)是(shi)討論(lun)數據(ju)的(de)存儲,對關鍵字的(de)一(yi)些其他(ta)功能就不(bu)做(zuo)過多(duo)的(de)說明了(le),不(bu)知道看了(le)以上的(de)表(biao)格對大家理解數據(ju)的(de)存儲期和作用域有沒(mei)有一(yi)些幫助。