亚洲精品一二区_国产黄色片网站_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 :外部引用,當需要外部引用時使用,就不做過多闡述了。

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

主站蜘蛛池模板: 人人看人人澡 | 欧美日韩中 | 中日韩在线视频 | 欧美色视频日本 | 韩国一级片视频 | 99热国产这里只有精品免费 | 99精品高清不卡在线观看 | 国产成人a v在线影院 | 欧美国产综合视频 | 在线视频观看亚洲 | 免费观看欧美大片 | 久久久亚洲精品蜜桃臀 | 国产啪精品视频网给免丝袜 | 久久国产精品网 | 欧美日韩激情在线一区 | 97久久人人爽人人爽人人 | 国产福利免费视频 | 久久九九国产精品怡红院 | 国产成人www免费人成看片 | 久久国产精品一国产精品 | 欧美一级在线免费观看 | 久久99精品久久久久久青青91 | 激情文学图片 | 激情视频在线观看网站 | 天天色综合2 | 日本三级韩国三级在线观看a级 | 欧美视频在线播放bbxxx | 久草资源在线观看 | 久操国产视频 | 九九免费观看全部免费视频 | 免费网站日本永久免费观看 | 欧美激烈大尺度叫床的床戏 | 国产一区影视 | 两个人在线观看视频www | 国产精品亚洲欧美日韩久久 | 狠狠色噜噜狠狠狠狠奇米777 | 2022欧美高清中文字幕在线看 | a级毛片免费播放 | 久青草免费视频手机在线观看 | 亚洲日本久久久午夜精品 | 亚洲黄色小视频 |