C語言中變數的儲存型別有哪幾種,儲存方式哪幾種?謝嘍

2021-09-02 07:15:44 字數 1858 閱讀 1666

1樓:珈藍惜夢

在c語言中,對變數的儲存型別說明有以下四種:

1、auto  自動變數

2、register  暫存器變數

3、extern  外部變數

4、static  靜態變數

所謂儲存型別是指變數佔用記憶體空間的方式,也稱為儲存方式。

變數的儲存方式可分為「靜態儲存」和「動態儲存」兩種。

1、靜態儲存變數通常是在變數定義時就在儲存單元並一直保持不變,直至整個程式結束。

2、動態儲存變數是在程式執行過程中,使用它時才分配儲存單元,使用完畢立即釋放。典型的例子是函式的形式引數,在函式定義時並不給形參分配儲存單元,只是在函式被呼叫時,才予以分配,呼叫函式完畢立即釋放。

如果一個函式被多次呼叫,則反覆地分配、釋放形參變數的儲存單元。從以上分析可知,靜態儲存變數是一直存在的,而動態儲存變數則時而存在時而消失。

擴充套件資料:

變數根據定義的位置的不同的生命週期,具有不同的作用域,作用域可分為6種:全域性作用域,區域性作用域,語句作用域,類作用域,名稱空間作用域和檔案作用域。

一、從作用域看:

1、全域性變數具有全域性作用域。全域性變數只需在一個原始檔中定義,就可以作用於所有的原始檔。當然,其他不包含全域性變數的定義的原始檔需要用extern關鍵字再次宣告這個全域性變數。

2、靜態區域性變數具有區域性作用域,它只被初始化一次,自從第一次被初始化直到程式執行結束一直存在,它和全域性變數的區別在於全域性變數對所有函式都是可見的,而靜態區域性變數只對定義自己的函式體始終可見。

3、區域性變數也只有區域性作用域,它是自動物件(auto),它在程式執行期間不是一直存在,而是隻在函式執行期間存在,函式的一次呼叫執行結束後,變數被撤銷,其所佔用的記憶體也被收回。

4、靜態全域性變數也具有全域性作用域,它與全域性變數的區別在於如果程式包含多個檔案的話,它作用於定義它檔案裡,不能作用到其他檔案裡,即被static關鍵字修飾過的變數具有檔案作用域。這樣即使兩個不同的原始檔都定義了相同名字的靜態全域性變數,它們也是不同的變數。

二、從分配空間看:

全域性變數,靜態區域性變數,靜態全域性變數都在靜態儲存區分配空間,而區域性變數在棧裡分配空間。

全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別雖在於非靜態全域性變數的作用域是整個源程式,當一個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是有效的。

而靜態全域性變數則限制了其作用域,即只在定義該變數的原始檔內有效,在同一個源程式的其他原始檔中不能使用它。由於靜態全域性變數的作用域侷限於一個原始檔內,只能為該原始檔內的函式公用,因此可以避免在其他原始檔中引起錯誤。

1、靜態變數會放在程式的靜態資料儲存區(全域性可見)中,這樣可以在下一次呼叫的時候還可以保持原來的賦值。這一點是它與堆疊變數和堆變數的區別。

2、變數用static告知編譯器,自己僅僅在變數的作用範圍內可見。這一點是它與全域性變數的區別。

2樓:匿名使用者

c語言中的變數有四種儲存型別,這四種儲存型別的關鍵字分別是auto(自動),extern(外部),static(靜態)和register(暫存器)。

3樓:

我想你說的應該是資料型別吧

沒記錯的話應該有以下幾種:

靜態變數:變數的生存期是從程式開始到結束;

動態變數:在程式執行當中需要呼叫該變數時才為它分配記憶體;

暫存器變數:存在於暫存器中:用於需要高速存取資料的場合

4樓:匿名使用者

棧上,堆上,靜態變數

5樓:珂卡芙9啊

區域性自動型別,靜態區域性型別,靜態全域性型別,全域性型別

c語言中區域性變數和全域性變數都是儲存在什麼區

c語言中區域性變數存在棧裡,全域性變數存靜態儲存區。區域性變數在棧空間上分配,這個區域性變數所在的函式被多次呼叫時,每次呼叫這個區域性變數在棧上的位置都不一定相同。區域性變數也可以在堆上動態分配,但是記得使用完這個堆空間後要釋放之。全域性變數全部存放在靜態儲存區,在程式開始執行時給全域性變數分配儲存...

常見的過樑有哪幾種,常用的過樑型別有哪幾種?各適用於什麼情況下采用?

比較常見的過樑有鋼筋磚過樑 砌磚平拱 磚砌弧拱和鋼筋砼過樑 磚砌楔拱過樑 磚砌半圓拱過樑 木過樑。最為常見的是鋼筋混凝土過樑和鋼筋磚過樑。如果您問的是鋼筋混凝土過樑的規格型號。那就不好說了,太多了,具體要根據洞口尺寸而定。一般圖紙上會提供尺寸,至於配筋要查圖集。幾種常見門頭過樑做法!衛生間用哪種隱患...

網路犯罪有哪幾種型別

一 是是通過非法手段,針對網路 漏洞對網路進行技術入侵,侵入網路後,主要以 竊取 更改或者刪除計算機資訊為目的的犯罪。二 通過資訊交換和軟體的傳遞過程,將破壞性病毒附帶在資訊中傳播 在部分免費輔助軟體中附帶邏輯炸彈定時引爆 或者在軟體程式中設定後門程式的犯罪。三 是利用公用資訊網路侵吞公共財務,以網...