iOS開發(fā)篇——C++變量屬性介紹-創(chuàng)新互聯(lián)

藍鷗iOS培訓講師推薦:在技術的領域里沒有懶這么一說,沒有學不會這么一說,只要你自己努力就沒什么太大問題。

建寧網(wǎng)站建設公司創(chuàng)新互聯(lián)公司,建寧網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為建寧近千家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設公司要多少錢,請找那個售后服務好的建寧做網(wǎng)站的公司定做!

變量除了數(shù)據(jù)類型以外,還有3種屬性:

1、存儲類別 C++允許使用auto,static,register和extern 4種存儲類別

2、作用域 指程序中可以引用該變量的區(qū)域

3、存儲期 指變量在內(nèi)存的存儲期限

上面這介紹的這些3種屬性是有關系的,程序設計者只能聲明變量的存儲類別,通過存儲類別可以確定變量的作用域和存儲期

但是大家一定要注意存儲類別的用法auto, static和register 3種存儲類別只能用于變量的定義語句中,如:

auto char c; //字符型自動變量,在函數(shù)內(nèi)定義

static int a;//靜態(tài)局部整型變量或靜態(tài)外部整型變量

register int d; //整型寄存器變量,在函數(shù)內(nèi)定義

extern int b;//聲明一個已定義的外部整型變量

重點說明: extern只能用來聲明已定義的外部變量,而不能用于變量定義,只要看到extern,就能夠判斷變量聲明,而不是定義變量語句。

下面是不同角度的分析:

1、從作用域角度分,有局部變量和全局變量,它們采用的存儲類別如下:

1)局部變量

自動變量,即動態(tài)局部變量(離開函數(shù),值就消失)

靜態(tài)局部變量(離開函數(shù),值仍保留)

寄存器變量(離開函數(shù),值就消失)

形式參數(shù)(可以定義為自動變量或寄存器變量)

2)全局變量

靜態(tài)外部變量(只限本文件引用)

外部變量(即非靜態(tài)的外部變量,允許其他文件引用)

2、從變量存儲期(存在的時間)來區(qū)分,有動態(tài)存儲和靜態(tài)存儲兩種類型,靜態(tài)存儲是程序整個運行時間都存在,而動態(tài)存儲則是在調(diào)用函數(shù)時臨時分配單元。

1)動態(tài)存儲

自動變量(本函數(shù)內(nèi)有效)

寄存器變量(本函數(shù)內(nèi)有效)

形式參數(shù)

2)靜態(tài)存儲

靜態(tài)局部變量(函數(shù)內(nèi)有效)

靜態(tài)外部變量(本文件內(nèi)有效)

外部變量(其他文件可引用)

3、從變量值存放的位置。可分為

1)內(nèi)存中靜態(tài)存儲區(qū)

靜態(tài)局部變量

靜態(tài)外部變量(函數(shù)外部靜態(tài)變量)

外部變量(可為其他文件引用)

2)內(nèi)存中動態(tài)存儲區(qū):  自動變量和形式參數(shù)

3)CPU 中的寄存器: 寄存器變量

4、關于作用域和存儲期的概念,從前面敘述可以知道,對一個變量的性質(zhì)可以從兩個方面分析,一是從變量的作用域,一是從變量值存在時間的長短,即存儲期,前者是從空間的角度,后者是從時間的角度,二者有關系,但是有不同的意義,如下圖:

 iOS開發(fā)篇——C++變量屬性介紹

作用域的示意圖

 iOS開發(fā)篇——C++變量屬性介紹

存儲期的示意圖

如果一個變量在某個文件或函數(shù)范圍內(nèi)是有效的,那么這個文件或函數(shù)稱為該變量的作用域,在該作用域內(nèi)能夠引用該變量的,所以又稱變量在此作用域內(nèi)“可見”,這種性質(zhì)又稱為變量的可見性,在“作用域的示意圖”中變量a、b在函數(shù)f1中能看到。

如果一個變量值在某一時刻是存在的,那么就認為這一時刻屬于該變量的存儲期,或稱該變量在此時刻“存在”

可以看到自動變量和寄存器變量在函數(shù)內(nèi)的可見性和存在性是一致的,在函數(shù)外的可見性和存在性也是一致的,靜態(tài)局部變量在函數(shù)外的可見性和存在性不一致,靜態(tài)外部變量和外部變量的可見性和存在性是一致的。

5、static聲明使變量采用靜態(tài)存儲方式,不過它對全局變量和局部變量有不同的作用,對局部變量而言,staic使動態(tài)存儲方式改為靜態(tài)存儲方式,而對于全局變量而言,它又使變量局部化(局部于本文件),不過仍是靜態(tài)存儲方式,從作用域角度而言,只要是有static聲明的,那么它的作用域都是局限的,可能只局限于本函數(shù)內(nèi)(靜態(tài)局部變量),也有可能局限于本文件內(nèi)(靜態(tài)外部變量)

本節(jié)課和大家說的有點多,不過理解起來應該不是很復雜,大家可以試著先理解一下,整理出來一個思路,如果有不懂的地方可隨時溝通!

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前題目:iOS開發(fā)篇——C++變量屬性介紹-創(chuàng)新互聯(lián)
標題路徑:http://bm7419.com/article8/dsspip.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供響應式網(wǎng)站、手機網(wǎng)站建設、定制開發(fā)、域名注冊自適應網(wǎng)站、標簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設