亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

 

變量的存儲小結

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

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

我們看到對變量的講解的時候看到很多概念,屬性,存儲期,內部鏈接,外部鏈接,空鏈接,全局變量,局部變量,寄存器變量,靜態變量等等。看起來很混亂,下面我們梳理一下。

其實我們再使用變量的時候大多關心的只有三個方面:變量的存在期,變量的類型,變量的作用域。

我們想一下變量的定義方法分為三部分:

<存儲類別> <變量的數據類型>  <變量名>

分別理解一下

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

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

存儲類別。這個是我們今天討論的重點。數據的存儲類別決定了一個數據的存在期和作用域,我們先了解一下存在期和作用域這兩個概念。

存在期:變量在內存中保存的時間。其實簡單的說主要就兩種情況,一是隨函數的調用而起作用,隨函數的結束而結束。二是作用于整個程序期間,直到程序結束。

作用域:變量能夠有效作用的區域。這個簡單的說有三種情況,一是只能作用在一個代碼塊內(或者說函數內),二是作用于整個文件(或者說程序)中,三是除了所在的文件別的文件也可以使用。

那么說了半天我們的存儲類別是怎么決定存在期和作用域的呢。別急,就是通過下面幾個關鍵字和變量定義所在的位置這兩個條件的組合。

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

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

static聲明的變量屬于靜態存儲類。所修飾的變量都在靜態區。

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

我們把這幾個關鍵字和位置的組合總結一下相信會清楚很多:

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

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

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

說明一下,register只能修飾局部變量和形參,因為在寄存器內所以沒有地址,也不可能是靜態的。

extern :外部引用,當需要外部引用時使用,就不做過多闡述了。

這里只是討論數據的存儲,對關鍵字的一些其他功能就不做過多的說明了,不知道看了以上的表格對大家理解數據的存儲期和作用域有沒有一些幫助。

主站蜘蛛池模板: 人人草在线视频 | 亚洲免费视频在线 | 欧美日韩视频在线第一区二区三区 | 青草娱乐极品免费视频 | 亚洲国产成人久久综合碰 | 国产综合久久 | 国产丝袜控视频在线观看 | 欧美日韩一区二区三区高清不卡 | 中文字幕日韩一区二区不卡 | 夜夜狠操 | 老子午夜影院 | 国产永久视频 | 欧美日韩亚洲视频 | 夜夜天天操 | 日韩一区二区国色天香 | 欧美伊人影院 | 六月婷婷综合激情 | 日本三级带日本三级带黄国产 | 国产视频999 | 免费一级成人毛片 | 欧美一区二区视频 | 国产永久免费视频 | 色综合天天射 | 欧美成人性色生活片免费在线观看 | 人人插人人添 | 99re这里只有精品视频在线观看 | 全部免费特黄特色大片视频 | 日本a级三级三级三级久久 日本a级特黄三级三级三级 | 久久午夜免费鲁丝片 | 亚洲人成网站色在线观看 | 久久久99精品免费观看精品 | 国产精品久久现线拍久青草 | 亚洲综合色在线 | 韩国 av | 91在线产啪 | 两个人的www免费高清视频 | 国产欧美日韩视频 | 欧美人bbbwww | 日本黄色大片网站 | 精品视频在线观看你懂的一区 | 国产精品美女视视频专区 |