社区
C语言
帖子详情
C语言提供的四种存储类别
njfylong
2009-09-13 08:39:52
在C语言中提供了四种存储类别:auto、extern、register、static,它们之间有什么区别?
...全文
563
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语言
中的另一个关键概念,包括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,017
社区成员
243,265
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章