1. 程式人生 > >C++變數的儲存型別

C++變數的儲存型別

參考《C/C++程式設計師面試寶典》

變數儲存型別

  儲存型別是從變數的存在時間來劃分變數,可分為靜態儲存方式和靜態儲存方式。對於動態儲存變數,當程式執行到該變數處時才為其分配儲存空間,當程式執行到該變數所在作用域的結束處時自動收回為其分配的儲存空間,因此它的存在時間 == 作用域執行時間。對於靜態儲存變數,在程式開始時為其分配儲存空間,程式結束時才收回儲存空間,其存在時間 == 程式執行時間。變數儲存型別有以下幾種:

自動型別變數(auto)

  自動型別只能是區域性型別的變數,屬於動態儲存變數。

靜態型別變數(static)

  在程式執行中,靜態變數始終佔用一個儲存空間。靜態變數只能在它的作用範圍使用,使用區域性靜態變數是為了在下次呼叫該函式時,能使用上次呼叫後得到的該變數的值。

暫存器型別變數(register)

  屬於動態儲存型別。編譯器不為暫存器型別變數分配記憶體空間,而是直接用CPU暫存器。以便提高對這類變數的存取速度。主要用於控制迴圈次數等不需要長期儲存的變數。

外部型別變數(extern)

  外部型別變數必須是全域性變數。在C++中,有兩種情況需要使用外部型別變數。一種是在同一個原始檔中,當在全域性的定義之前使用該變數時,在使用前要對該變數進行外部型別變數宣告。另一種是當程式由多個檔案組成時,若在一個原始檔中要引用另一個原始檔中定義的全域性變數,則在引用前必須對所引用的變數進行外部宣告。

PS:如果在某檔案中定義的變數不想被其他檔案所呼叫,則必須將該變數宣告為靜態全域性變數,也就是說,靜態全域性變數只能供所在檔案中使用。

相關推薦

c++ 變數儲存型別

extern 儲存型別 : 只宣告而不定義變數,變數的宣告只是告訴編輯器變數的名稱和資料型別;變數的定義是給變數分配儲存區域;優點就是可以在多個檔案裡面共享一個全域性變數, static 儲存型別: static指的是靜態變數(又叫永續性變數);靜態變數分為兩種,第一種是區

C語言中變數儲存型別有哪些?

    變數的儲存型別是C語言的重要組成部分,也是C語言學習的基礎。那C語言中變數的儲存型別有哪幾種呢?在程式設計過程中又該怎樣運用呢?就這一問題,我今天給大家介紹一下!總的來說,C語言中變數的儲存型別可以分為四種,他們分別是自動變數、靜態變數、外部變數和暫存器變數這四種,

C語言支援的四種變數儲存型別

一)auto:auto稱為自動變數(區域性變數)。區域性變數是指在函式內部說明的變數(有時也稱為自動變數)。所有的非全程變數都被認為是區域性變數,所以auto實際上從來不用。區域性變數在函式呼叫時自動產生,但不會自動初始化,隨函式呼叫的結束,這個變數也就自動消失了。下次呼叫

C++中變數儲存型別

儲存類 auto 儲存類 auto 儲存類是所有區域性變數預設的儲存類。 {int mount;autoint month;} 上面的例項定義了兩個帶有相同儲存類的變數,auto 只能用在函式

C++變數型別

基本資料型別: 型別大小: 變數宣告: int number; float number_l; //既是宣告也是定義通知編譯器在記憶體中為變數保留的大小以及如何解釋其值; extern int sum; //變數sum在其他檔案中定義,這裡只進行宣告,不申請記憶體儲存 宣

c語言 儲存型別

c中的每一個變數和函式都有兩個屬性:型別(type)和儲存型別(storage class).儲存型別分別是auto(自動),extern(外部),register(暫存器),static(靜態) 1.auto 在函式體中定義的變數預設是auto. 當進入

理解C++變數儲存模型

在理解程式記憶體一文中我們介紹了普通程式執行時在記憶體中的佈局,下面我們專門針對C++原始碼以WinDbg為工具分析下C++程式的變數儲存模型, 要理解下面的知識,請先看懂理解程式記憶體一文。下面我們嘗試分析C++變數的儲存模型, 我們的測試程式非常簡單:#include <iostream

C++資料儲存型別

和C語言一樣,C++也為靜態儲存持續性變數提供了3種連結性:外部連結性(可在其他檔案中訪問)、內部連結性(只能在當前檔案中訪問)和無連結性(只能在當前函式或程式碼中訪問)。這3種連結性都在整個程式執行期間存在,與自動變數相比,它們的壽命更長。由於靜態變數的數目在程式執行期間是不變的,因此程式不需要使用特殊的裝

C/C++中儲存型別修飾符的區別(auto、static、register、extern、volatile、restrict)

一、區域性變數和全域性變數: (1)區域性變數:區域性變數也叫自動變數,它宣告在函式開始,生存於棧,它的生命隨著函式的返回而結束。 #include <stdio.h> int main(void) { auto int i = 9; //宣告區域性

C語言儲存型別

看c專家程式設計,有說儲存型別一直不太清楚。看到一篇文章講解c的儲存型別,講解了c語言中的各種變數的儲存型別,而且是從程序、記憶體的角度講解的,以前從沒有這樣理解過,覺得挺有用的,在這裡轉載過來。 首先要來理解一下可執行檔案載入進記憶體後形成的程序在記憶體中的結構,如下

c++基礎:const,變數的作用域和生存期,儲存型別

一:const的使用: const常量型別表示“常值變數”,cosnt型變數代表的常值只在其作用域內有效; const與define相比:const會在編譯時進行型別檢查,而define只做文字替換;define後面不需要分號。 1.宣告變數:例如 const int size = 20; 2.限定

C語言常量以及變數型別,儲存型別和作用域

變數 其值可以改變的量稱為變數。一個變數應該有一個名字,在記憶體中佔據一定的儲存單元。變數定義必須放在變數使用之前。一般放在函式體的開頭部分。要區分變數名和變數值是兩個不同的概念。 變數定義的一般形式為:    型別說明符  變數名, 變數名, ...;在書寫變數定義時,應注意以下幾點: 允許在一個型

C語言變數型別儲存位置

1. C語言變數主要分為全域性變數、靜態全域性變數、區域性變數、靜態區域性變數和暫存器變數。其中靜態變數用static關鍵字進行修飾。程式所佔用的記憶體可以分為以下幾個部分: (1)程式碼段-存放程式程式碼,只讀的,不能修改。 (2)全域性區(靜態區),又稱為資料段。其中.data段存放的是

C++變數儲存型別

參考《C/C++程式設計師面試寶典》 變數儲存型別   儲存型別是從變數的存在時間來劃分變數,可分為靜態儲存方式和靜態儲存方式。對於動態儲存變數,當程式執行到該變數處時才為其分配儲存空間,當程式執行到該變數所在作用域的結束處時自動收回為其分配的儲存空間,

c 變數儲存型別auto等(基礎知識)和c函式變數

總結  1).在c語言中每一個變數和函式有兩個屬性:資料型別和資料的儲存類別。 2). 對資料型(如整型、字元型等)。儲存類別指的是資料在記憶體中儲存的方式。 儲存方式分為兩大類: 靜態儲存類和動態儲存類 具體包括四種:{自動的(auto), 靜態的(static), 暫存器(registe

c語言-變數的四種儲存型別

auto         自動變數register     暫存器變數extern 外部變數static 靜態變數 一般形式:儲存型別說明符 資料型別說明符 變數名,變數名...static int a,b; auto char c1,c2; static int a[3

C語言中,變數儲存型別有幾種?

在C語言中,對變數的儲存型別說明有以下四種:         auto          自動變數         register     暫存器變數         extern       外部變數         static         靜態變數       

C語言變數儲存型別

變數的儲存型別 “這些都是用來修飾變數的,修飾函式的時候,其可能有不同的含義,請加以區分,後面會針對修飾函式來進行總結” 儲存型別 變數 說明 auto 自動變數 區域性變數在預設的情況下會歸為自動變數,預設是不會進行初始

C語言中變數的作用域與儲存型別

1.      全域性變數與區域性變數 任何函式或變數均只能定義一次,可宣告多次。定義在程式碼塊之內(函式塊內)的變數為區域性變數,定義在函式外部的變數為全域性變數,作用範圍是整個專案(不單單是本檔案),因此也不能在其它檔案中再次定義同名變數,函式也是如此。 2.     

**C++變數和基本內建型別**(C++ Primer讀書筆記)

1.內建型別包括算數型別和空型別(void,適用於沒有任何返回值的函式或者其他的特殊場合)。算數型別包括整形(字元和布林型)和浮點型。 2.除了布林型和擴充套件的字元型之外。,其餘的整形都可以通過在前面新增unsigned來變成無符號型別(帶符號的型別可以表示負數,0,和整數。無符號型別