社区
C语言
帖子详情
C语言提供的四种存储类别
njfylong
2009-09-13 08:39:52
在C语言中提供了四种存储类别:auto、extern、register、static,它们之间有什么区别?
...全文
587
9
打赏
收藏
C语言提供的四种存储类别
在C语言中提供了四种存储类别:auto、extern、register、static,它们之间有什么区别?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
njfylong
2009-09-15
打赏
举报
回复
谢谢各位!
aozhi
2009-09-14
打赏
举报
回复
register是建议性的,编译器有时会忽略register请求。比如定义了太多的register变量时。此时被忽略请求的register变量和auto变量应该没有区别。
wanghui2008se
2009-09-14
打赏
举报
回复
[Quote=引用 6 楼 heyapeng1990911 的回复:]
auto:自动变量
auto存储在内存的堆栈区,属于临时性存储变量,并不长期占用内存,可以被多次覆盖。
register:寄存器变量
register与auto一样属于自动类别。区别在于register的值保存在CPU的寄存器中。计算机中只有寄存器中的数据才能直接参与运算,而一般变量是放在内存中的,变量参加运算是,需要先把变量从内存中取到寄存器中,然后计算。所以一般把使用最频繁的变量定义成register变量。register变量只能在函数中定义,并只能是int和char型。
static:静态变量
static一般存储在数据区,,这类变量在数据说明时被分配了一定的内存空间,程序运行期间,它占据一个永久的存储单元,,因此在对出函数后,存储单元中的值仍旧保留。简单说,程序运行时static型变量的值可以被语句改变,但当程序运行结束后,其值又变回原来的值。
extern:外部类型
estern变量在数据运行时被分配了一定的内存空间,该空间在整个运行程序中,只要程序存在,自始自终都被该变量使用,即其值始终不变。
[/Quote]
懂了吗
heyapeng1990911
2009-09-13
打赏
举报
回复
auto:自动变量
auto存储在内存的堆栈区,属于临时性存储变量,并不长期占用内存,可以被多次覆盖。
register:寄存器变量
register与auto一样属于自动类别。区别在于register的值保存在CPU的寄存器中。计算机中只有寄存器中的数据才能直接参与运算,而一般变量是放在内存中的,变量参加运算是,需要先把变量从内存中取到寄存器中,然后计算。所以一般把使用最频繁的变量定义成register变量。register变量只能在函数中定义,并只能是int和char型。
static:静态变量
static一般存储在数据区,,这类变量在数据说明时被分配了一定的内存空间,程序运行期间,它占据一个永久的存储单元,,因此在对出函数后,存储单元中的值仍旧保留。简单说,程序运行时static型变量的值可以被语句改变,但当程序运行结束后,其值又变回原来的值。
extern:外部类型
estern变量在数据运行时被分配了一定的内存空间,该空间在整个运行程序中,只要程序存在,自始自终都被该变量使用,即其值始终不变。
RJS_April
2009-09-13
打赏
举报
回复
楼上说的已经很详细了
pigniyan
2009-09-13
打赏
举报
回复
在C语言中提供了四种存储类别:auto、extern、register、static,它们之间有什么区别?
auto可以省略了,现在还有人用吗?你在程序中声说一个变量,比如int i,其中i就是auto型
extern 这是用来声明外部变量,可以用于此程序外的程序中,类型要一致
register这是个用来声明寄存器变量的,读取速度最快,但是寄存器只能存储一个字,空间有限,数量有限
static是声明静态变量的,也就是C语言中的私有成员.如果在一个函数中声明一个静态变量,静态变量的空间不在栈里面,而是存储在静态空间里,这个函数结束后,静态变量的值依旧存在,内存不会收会此变量占用的内存空间,而是等整个程序都结果后才收回静态变量空间.
shiweifu
2009-09-13
打赏
举报
回复
auto:默认的对象是用这个修饰的
extern:表示对象已经在其他地方声明了
register:向编译器建议把变量存储到寄存器中,这样可以提高读写速度
static:静态对象。。对象在程序结束时才销毁
说的不太准确,LZ可以参考下其他资料
kouwenlong
2009-09-13
打赏
举报
回复
这些我都没有注意,还是一样.
mstlq
2009-09-13
打赏
举报
回复
http://topic.csdn.net/t/20041122/21/3578178.html
浅谈
C语言
的数据
存储
存储
类别
是
C语言
中的另一个关键概念,包括auto、static、extern和register
四种
。auto是默认的
存储
类别
,用于栈上的局部变量。static变量则在程序的整个生命周期内都存在,即使在函数调用结束后仍然保留其值。extern...
c语言
大全(第四版)
2. 函数:详细介绍了函数的定义、声明、参数传递、作用域和
存储
类别
等主题。函数是组织代码和模块化开发的关键,作者在这一部分强调了函数的重要性和正确的使用方法。 3. 指针:指针是
C语言
中最复杂和最强大的特性...
C语言
笔记&
C语言
笔记
从给定的文件标题“
C语言
笔记”及描述与部分内文中,我们可以提炼出一系列关于
C语言
的关键知识点,这些知识涵盖了
C语言
的基础语法、数据类型、运算符、控制结构、字符串处理以及变量的作用域和
存储
类别
等核心概念。...
谭浩强
c语言
PDF版.pdf
C语言
提供
了while、do-while和for三种循环控制结构,并且支持循环的嵌套和跳转语句(如break和continue)。 数组是
C语言
中一种重要的数据结构,它可以
存储
一系列相同类型的数据。
C语言
支持一维数组和多维数组,如二...
《
C语言
程序设计》课件 .pdf
C语言
中,根据
存储
类别
不同,变量可以是自动
存储
期、静态
存储
期等类型。 指针是
C语言
中一种特殊的变量,它
存储
了变量的内存地址。通过指针,可以间接访问和操作内存。指针是
C语言
中最强大但同时也是非常容易出错的...
C语言
70,034
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章