当前位置:首页 » 存储配置 » 存储类型有

存储类型有

发布时间: 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声明只是向编译器所提出的“建议”,并非强制要求

热点内容
vpn韩国服务器地址 发布:2025-03-20 07:12:44 浏览:25
打码软件源码 发布:2025-03-20 07:08:06 浏览:109
前端android 发布:2025-03-20 06:50:42 浏览:93
进制转换栈c语言 发布:2025-03-20 06:50:31 浏览:339
myeclipse不自动编译了 发布:2025-03-20 06:41:38 浏览:777
led汽车大灯和卤素灯该选哪个配置 发布:2025-03-20 06:40:55 浏览:917
sql网校 发布:2025-03-20 06:16:42 浏览:279
安卓手机图标排列为什么会混乱 发布:2025-03-20 06:16:05 浏览:761
手机pin初始密码是多少 发布:2025-03-20 06:15:59 浏览:900
javaif常量变量 发布:2025-03-20 06:15:57 浏览:344