當前位置:首頁 » 存儲配置 » 存儲類型有

存儲類型有

發布時間: 2022-09-20 05:35:38

c語言中變數的存儲類型有哪幾種,存儲方式哪幾種謝嘍

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

1、auto 自動變數

2、register 寄存器變數

3、extern 外部變數

4、static 靜態變數

所謂存儲類型是指變數佔用內存空間的方式,也稱為存儲方式。

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

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

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

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

(1)存儲類型有擴展閱讀:

變數根據定義的位置的不同的生命周期,具有不同的作用域,作用域可分為6種:全局作用域,局部作用域,語句作用域,類作用域,命名空間作用域和文件作用域。

一、從作用域看:

1、全局變數具有全局作用域。全局變數只需在一個源文件中定義,就可以作用於所有的源文件。當然,其他不包含全局變數的定義的源文件需要用extern關鍵字再次聲明這個全局變數。

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

3、局部變數也只有局部作用域,它是自動對象(auto),它在程序運行期間不是一直存在,而是只在函數執行期間存在,函數的一次調用執行結束後,變數被撤銷,其所佔用的內存也被收回。

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

二、從分配空間看:

全局變數,靜態局部變數,靜態全局變數都在靜態存儲區分配空間,而局部變數在棧里分配空間。

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

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

1、靜態變數會放在程序的靜態數據存儲區(全局可見)中,這樣可以在下一次調用的時候還可以保持原來的賦值。這一點是它與堆棧變數和堆變數的區別。

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

參考資料來源:網路-變數-存儲類型

Ⅱ 儲存器可分為哪三類

儲存器可分為隨機存儲器、只讀存儲器和外存儲器三類。

一、隨機存儲器:隨機存取存儲器(random access memory)又稱作「隨機存儲器」,是與CPU直接交換數據的內部存儲器,也叫主存(內存)。它可以隨時讀寫,而且速度很快,通常作為操作系統或其他正在運行中的程序的臨時數據存儲媒介。

二、只讀存儲器:其英文簡稱是ROM,它所存儲的數據通常都是裝入主機之前就寫好的,在工作的時候只能讀取而不能像隨機存儲器那樣隨便寫入,但是只讀存儲器有的所存儲的數據十分穩定。而且只讀存儲器的結構十分簡單,讀出很簡便,因此一般用於存儲各種的程序與數據的地方。

三、外存儲器:外存儲器包括軟盤存儲器、硬碟存儲器、移動存儲器、快閃記憶體檔(優盤)、移動硬碟、固態硬碟(SSD)、光碟存儲器等。外儲存器是指除計算機內存及CPU緩存以外的儲存器,此類儲存器一般斷電後仍然能保存數據。

(2)存儲類型有擴展閱讀

儲存器主要採用半導體器件和磁性材料。存儲器中最小的存儲單位就是一個雙穩態半導體電路或一個CMOS晶體管或磁性材料的存儲元,它可存儲一個二進制代碼。由若干個存儲元組成一個存儲單元,然後再由許多存儲單元組成一個存儲器。

一個存儲器包含許多存儲單元,每個存儲單元可存放一個位元組。每個存儲單元的位置都有一個編號,即地址,一般用十六進製表示。一個存儲器中所有存儲單元可存放數據的總和稱為它的存儲容量。

Ⅲ 在C語言中,存儲類別包括什麼

1、c語言中的存儲類型有static 、auto、extern、及register,函數默認的存儲類型應該是extern,意思是具有外部鏈接性的。一般來說,會通過extern來聲明函數。
2、比如下面的代碼,在1.c中定義一個函數,函數的聲明寫在1.h頭文件中,在2.c中通過添加1.h的頭文件,來聲明及調用函數f()。

//1.c
void f() { ; }
//1.h
extern void f();
//2.c
#include "1.h"
int main() { f();}

Ⅳ 存儲方式有哪些

神州雲科告訴你目前數據存儲有哪幾種方式
1、DAS類型的直接附加存儲;
2、NAS數據存儲;
3、SAN存儲方式

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

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

Ⅵ 存儲分類有哪些 什麼SAN/NAS之類的

SAN、NAS、DAS、FC、ISCSI、FC-SAN、IP-SAN等並不是同一類別的概念。SCSI、FC、NAS、ISCSI等概念指的是存儲設備類型,DAS、NAS、SAN等指的是存儲系統的網路結構。存儲設備類型是指通過採用SCSI、FC、TCP/IP,ISCSI等介面類型、數據傳輸協議、以及不同數據存儲介質的存儲設備。常見的存儲設備類型可為SCSI存儲、NAS存儲、FC存儲、iSCSI存儲和磁帶存儲。

Ⅶ 存儲器的類型

根據存儲材料的性能及使用方法的不同,存儲器有幾種不同的分類方法。1、按存儲介質分類:半導體存儲器:用半導體器件組成的存儲器。磁表面存儲器:用磁性材料做成的存儲器。
下面我們就來了解一下存儲器的相關知識。
存儲器大體分為兩大類,一類是掉電後存儲信息就會丟失,另一類是掉電後存儲信息依然保留,前者專業術語稱之為「易失性存儲器」,後者稱之為「非易失性存儲器」。

1 RAM

易失性存儲器的代表就是RAM(隨機存儲器),RAM又分SRAM(靜態隨機存儲器)和DRAM(動態隨機存儲器)。

SRAM
SRAM保存數據是靠晶體管鎖存的,SRAM的工藝復雜,生產成本高,但SRAM速度較快,所以一般被用作Cashe,作為CPU和內存之間通信的橋梁,例如處理器中的一級緩存L1 Cashe, 二級緩存L2 Cashe,由於工藝特點,SRAM的集成度不是很高,所以一般都做不大,所以緩存一般也都比較小。

DRAM
DRAM(動態隨機存儲器)保存數據靠電容充電來維持,DRAM的應用比SRAM更普遍,電腦裡面用的內存條就是DRAM,隨著技術的發展DRAM又發展為SDRAM(同步動態隨機存儲器)DDR SDRAM(雙倍速率同步動態隨機存儲器),SDRAM只在時鍾的上升沿表示一個數據,而DDR SDRAM能在上升沿和下降沿都表示一個數據。
DDR又發展為DDR2,DDR3,DDR4,在此基礎上為了適應移動設備低功耗的要求,又發展出LPDDR(Low Power Double Data Rate SDRAM),對應DDR技術的發展分別又有了LPDDR2, LPDDR3, LPDDR4。

目前手機中運行內存應用最多的就是 LPDDR3和LPDDR4,主流配置為3G或4G容量,如果達到6G或以上,就屬於高端產品。

2 ROM

ROM(Read Only Memory)在以前就指的是只讀存儲器,這種存儲器只能讀取它裡面的數據無法向裡面寫數據。所以這種存儲器就是廠家造好了寫入數據,後面不能再次修改,常見的應用就是電腦里的BIOS。
後來,隨著技術的發展,ROM也可以寫數據,但是名字保留了下來。
ROM中比較常見的是EPROM和EEPROM。

EPROM
EPROM(Easerable Programable ROM)是一種具有可擦除功能,擦除後即可進行再編程的ROM內存,寫入前必須先把裡面的內容用紫外線照射IC上的透明視窗的方式來清除掉。這一類晶元比較容易識別,其封裝中包含有「石英玻璃窗」,一個編程後的EPROM晶元的「玻璃窗」一般使用黑色不幹膠紙蓋住, 以防止遭到紫外線照射。

EPROM (Easerable Programable ROM)

EPROM存儲器就可以多次擦除然後多次寫入了。但是要在特定環境紫外線下擦除,所以這種存儲器也不方便寫入。

EEPROM
EEPROM(Eelectrically Easerable Programable ROM),電可擦除ROM,現在使用的比較多,因為只要有電就可擦除數據,再重新寫入數據,在使用的時候可頻繁地反復編程。

FLASH
FLASH ROM也是一種可以反復寫入和讀取的存儲器,也叫快閃記憶體,FLASH是EEPROM的變種,與EEPROM不同的是,EEPROM能在位元組水平上進行刪除和重寫而不是整個晶元擦寫,而FLASH的大部分晶元需要塊擦除。和EEPROM相比,FLASH的存儲容量更大。
FLASH目前應用非常廣泛,U盤、CF卡、SM卡、SD/MMC卡、記憶棒、XD卡、MS卡、TF卡等等都屬於FLASH,SSD固態硬碟也屬於FLASH。

NOR FLAHS & NAND FLASH
Flash又分為Nor Flash和Nand Flash。
Intel於1988年首先開發出Nor Flash 技術,徹底改變了原先由EPROM和EEPROM一統天下的局面;隨後,1989年,東芝公司發表了Nand Flash 結構,強調降低每比特的成本,有更高的性能,並且像磁碟一樣可以通過介面輕松升級。
Nor Flash與Nand Flash不同,Nor Flash更像內存,有獨立的地址線和數據線,但價格比較貴,容量比較小;而Nand Flash更像硬碟,地址線和數據線是共用的I/O線,類似硬碟的所有信息都通過一條硬碟線傳送一樣,而且Nand Flash與Nor Flash相比,成本要低一些,而容量大得多。

如果快閃記憶體只是用來存儲少量的代碼,這時Nor Flash更適合一些。而Nand Flash則是大量數據存儲的理想解決方案。
因此,Nor Flash型快閃記憶體比較適合頻繁隨機讀寫的場合,通常用於存儲程序代碼並直接在快閃記憶體內運行,Nand Flash型快閃記憶體主要用來存儲資料,我們常用的快閃記憶體產品,如U盤、存儲卡都是用Nand Flash型快閃記憶體。
在Nor Flash上運行代碼不需要任何的軟體支持,在Nand Flash上進行同樣操作時,通常需要驅動程序。

目前手機中的機身內存容量都比較大,主流配置已經有32G~128G存儲空間,用的通常就是Nand Flash,另外手機的外置擴展存儲卡也是Nand Flash。

Ⅷ C語言中有哪些存儲類型

四種變數存儲類型。說明符如下:
auto static extern register
一、auto
auto稱為自動變數。

局部變數是指在函數內部說明的變數(有時也稱為自動變數)。用關鍵字auto進
行說明, 當auto省略時, 所有的非全程變數都被認為是局部變數, 所以auto實際上
從來不用。

二、static
static稱為靜態變數。根據變數的類型可以分為靜態局部變數和靜態全程變數。
1. 靜態局部變數
它與局部變數的區別在於: 在函數退出時, 這個變數始終存在, 但不能被其它
函數使用, 當再次進入該函數時, 將保存上次的結果。其它與局部變數一樣。
2. 靜態全程變數
Turbo C將大型程序分成若干獨立模塊文件分別編譯, 然後將所有模塊
的目標文件連接在一起, 從而提高編譯速度, 同時也便於軟體的管理和維護。靜態
全程變數就是指只在定義它的源文件中可見而在其它源文件中不可見的變數。它與
全程變數的區別是: 全程變數可以再說明為外部變數(extern), 被其它源文件使用,
而靜態全程變數卻不能再被說明為外部的, 即只能被所在的源文件使用。
三、extern
extern稱為外部變數。為了使變數除了在定義它的源文件中可以使用外, 還要
被其它文件使用。因此, 必須將全程變數通知每一個程序模塊文件, 此時可用
extern來說明。
四、register
register稱為寄存器變數。

Ⅸ 存儲的分類有哪幾種並簡單進行描述

四種變數存儲類型。說明符如下:
auto static extern register
一、auto
auto稱為自動變數。
局部變數是指在函數內部說明的變數(有時也稱為自動變數)。用關鍵字auto進
行說明, 當auto省略時, 所有的非全程變數都被認為是局部變數, 所以auto實際上
從來不用。

二、static
static稱為靜態變數。根據變數的類型可以分為靜態局部變數和靜態全程變數。
1. 靜態局部變數
它與局部變數的區別在於: 在函數退出時, 這個變數始終存在, 但不能被其它
函數使用, 當再次進入該函數時, 將保存上次的結果。其它與局部變數一樣。
2. 靜態全程變數
Turbo C將大型程序分成若干獨立模塊文件分別編譯, 然後將所有模塊
的目標文件連接在一起, 從而提高編譯速度, 同時也便於軟體的管理和維護。靜態
全程變數就是指只在定義它的源文件中可見而在其它源文件中不可見的變數。它與
全程變數的區別是: 全程變數可以再說明為外部變數(extern), 被其它源文件使用,
而靜態全程變數卻不能再被說明為外部的, 即只能被所在的源文件使用。
三、extern
extern稱為外部變數。為了使變數除了在定義它的源文件中可以使用外, 還要
被其它文件使用。因此, 必須將全程變數通知每一個程序模塊文件, 此時可用
extern來說明。
四、register
register稱為寄存器變數。

Ⅹ C語言中有哪些存儲類型

自動,靜態,外部,寄存在函數體內聲明的變數在默認情況下都是auto存儲類型

在代碼塊之間傳遞信息的一種方法就是使用外部變數。當一個變數在函數的外部被聲明時,安的存儲空間是永久分配的,安人存儲類型是extren.外部變數的聲明看上去和函數或代碼塊內部所聲明的變數一樣。外部變數對於它之後的所有函數都有效。在代碼塊或函數後,外部變數仍然存在。

static的基本用途是允許一個局部變數在重新進入代碼塊時能夠保持原來的值。這和自動變數形成了鮮明的對比,自動變數在代碼塊時會被銷毀,再次進入這個代碼塊時,它必須重新進行初始化。

register存儲類型告訴編譯器相關的變數應該改量存儲在高速度的寄存器中。使用register存儲類型的目的一般是為了提高執行速度,但是,register聲明只是向編譯器所提出的「建議」,並非強制要求

熱點內容
演算法第五版 發布:2025-03-20 05:17:57 瀏覽:728
湖南台訪問 發布:2025-03-20 05:10:32 瀏覽:37
腳本和秒搶 發布:2025-03-20 05:06:29 瀏覽:590
b35鎖如何設置密碼 發布:2025-03-20 05:06:27 瀏覽:903
淘寶如何租雲伺服器 發布:2025-03-20 05:05:12 瀏覽:210
編程忌諱 發布:2025-03-20 04:58:35 瀏覽:425
國家知識產權專利資料庫 發布:2025-03-20 04:54:29 瀏覽:414
win7怎麼給文件夾設密碼 發布:2025-03-20 04:52:38 瀏覽:723
安卓手機電影怎麼投屏到ipad上 發布:2025-03-20 04:27:23 瀏覽:677
蘋果安卓基於什麼開發 發布:2025-03-20 04:20:52 瀏覽:520