社区
C语言
帖子详情
C语言提供的四种存储类别
njfylong
2009-09-13 08:39:52
在C语言中提供了四种存储类别:auto、extern、register、static,它们之间有什么区别?
...全文
577
9
打赏
收藏
C语言提供的四种存储类别
在C语言中提供了四种存储类别:auto、extern、register、static,它们之间有什么区别?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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语言
的数据
存储
分两册讲说 很详细 附图
c语言
大全(第四版)
c语言
大全(第四版)
c语言
大全 各种
c语言
代码
C语言
笔记&
C语言
笔记
从C的贴吧上复制粘贴过来的。从第一章的概述到指针那块。
谭浩强
c语言
PDF版.pdf
谭浩强
c语言
PDF版.pdf
《
C语言
程序设计》课件 .pdf
《
C语言
程序设计》课件 .pdf
C语言
70,023
社区成员
243,253
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章