问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言中变量的存储类型有哪几种,存储方式哪几种?谢喽

发布网友 发布时间:2022-03-31 07:16

我来回答

8个回答

懂视网 时间:2022-03-31 11:37

以c语言为例,全局变量的存储类型有普通内存、堆栈以及寄存器。

  

  C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%至20%。因此,C语言可以编写系统软件。

  

  当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。

热心网友 时间:2022-03-31 08:45

在C语言中,对变量的存储类型说明有以下四种:

1、auto  自动变量

2、register  寄存器变量

3、extern  外部变量

4、static  静态变量

所谓存储类型是指变量占用内存空间的方式,也称为存储方式。

变量的存储方式可分为“静态存储”和“动态存储”两种。

1、静态存储变量通常是在变量定义时就在存储单元并一直保持不变,直至整个程序结束。

2、动态存储变量是在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放。典型的例子是函数的形式参数,在函数定义时并不给形参分配存储单元,只是在函数被调用时,才予以分配,调用函数完毕立即释放。

如果一个函数被多次调用,则反复地分配、释放形参变量的存储单元。从以上分析可知,静态存储变量是一直存在的,而动态存储变量则时而存在时而消失。

扩展资料:

变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。

一、从作用域看:

1、全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量的定义的源文件需要用extern关键字再次声明这个全局变量。

2、静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束一直存在,它和全局变量的区别在于全局变量对所有函数都是可见的,而静态局部变量只对定义自己的函数体始终可见。

3、局部变量也只有局部作用域,它是自动对象(auto),它在程序运行期间不是一直存在,而是只在函数执行期间存在,函数的一次调用执行结束后,变量被撤销,其所占用的内存也被收回。

4、静态全局变量也具有全局作用域,它与全局变量的区别在于如果程序包含多个文件的话,它作用于定义它文件里,不能作用到其他文件里,即被static关键字修饰过的变量具有文件作用域。这样即使两个不同的源文件都定义了相同名字的静态全局变量,它们也是不同的变量。

二、从分配空间看:

全局变量,静态局部变量,静态全局变量都在静态存储区分配空间,而局部变量在栈里分配空间。

全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。

而静态全局变量则*了其作用域,即只在定义该变量的源文件内有效,在同一个源程序的其他源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其他源文件中引起错误。

1、静态变量会放在程序的静态数据存储区(全局可见)中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。

2、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。

参考资料来源:百度百科-变量-存储类型

热心网友 时间:2022-03-31 10:03

C语言中的变量有四种存储类型,这四种存储类型的关键字分别是auto(自动),extern(外部),static(静态)和register(寄存器)。

热心网友 时间:2022-03-31 11:38

我想你说的应该是数据类型吧
没记错的话应该有以下几种:
静态变量:变量的生存期是从程序开始到结束;
动态变量:在程序运行当中需要调用该变量时才为它分配内存;
寄存器变量:存在于寄存器中:用于需要高速存取数据的场合

热心网友 时间:2022-03-31 13:29

栈上,堆上,静态变量

热心网友 时间:2022-03-31 15:37

局部自动类型,静态局部类型,静态全局类型,全局类型

热心网友 时间:2022-03-31 18:02

百度

热心网友 时间:2022-03-31 20:43

就你晁
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
交通工程好考公务员吗 交通工程类考公时包括哪些专业 交通工程专业的能报考什么样的公务员 交通工程专业往哪些方向考公务员 交通工程可以考公务员有哪些岗位 我专业交通工程。能考什么类型的公务员 支付宝怎么关联另一个账号 支付宝怎么关联另一个支付宝 支付宝关联账号在哪里?怎么添加? 京东买手机发票可以开别人名字吗 女孩没结婚梦见自己有孩子吃奶 我是女生,我的女性朋友梦到了我和她一起在床上喝奶... 梦到自己亲人睡在自己身边要吃奶? 如何停止css animation动画 css3中的动画模块持续时长后面写两个时间是什么意... animation里的forwards到底是什么作用 我梦见我要喝奶意味着什么意思? css3动画怎样能从下往上慢慢升上去 代码怎么写 CSS3动画中怎么一边移动一边旋转? css3 animation 如何让他停在最后 css3的过渡和动画会阻塞线程么,为什么 css3动画如何在动作结束时保持该状态不变 如何用纯css实现一个动态画圆环效果 android循环属性动画结束后状态怎样变回原状态 CSS3的animation CSS animation 与 CSS transition 有何区别 css3的-webkit-animation动画执行后会变回原来的样... CSS3 动画 animation-fill-mode:forwards css3里面动画有没有用过?动画的属性有哪些?具体... css3动画学习的方向 我的電腦剛買沒多久,為什麼老是死機啊! 浴室门如何防水防潮 浴室门防水条的特点以及如何安装浴室的防水带 卫生间木门怎么做防水 玻璃浴室门自爆如何预防 生活小妙招防止浴室门缝漏水 如何防止玻璃浴室的门爆裂? 卫生间的木门怎样才能防水呢? 玻璃浴室的门爆裂了怎么办?可以预防吗 卫生间门用的木门,怎么样做防潮好呢? 浴室木门受潮怎么处理,该如何防潮 如何将照片压缩? 如何照片压缩 浴室玻璃门爆裂原因及预防措施 [木门]怎样预防浴室的木门不发霉? 卫生间门材质选择 防潮是关键 浴室有什么防滑的好方法呢? 如何防止浴室玻璃门爆炸 浴室安全隐患多,浴室安全隐患应该怎么防 卫生间门如何防潮