2023年c语言变量存储方式c语言中变量的存储类型精选.docx

上传人:1868****340 文档编号:93619407 上传时间:2023-07-09 格式:DOCX 页数:4 大小:12.51KB
返回 下载 相关 举报
2023年c语言变量存储方式c语言中变量的存储类型精选.docx_第1页
第1页 / 共4页
2023年c语言变量存储方式c语言中变量的存储类型精选.docx_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2023年c语言变量存储方式c语言中变量的存储类型精选.docx》由会员分享,可在线阅读,更多相关《2023年c语言变量存储方式c语言中变量的存储类型精选.docx(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、2023年c语言变量存储方式c语言中变量的存储类型精选 每个人都曾试图在平淡的学习、工作和生活中写一篇文章。写作是培育人的视察、联想、想象、思维和记忆的重要手段。写范文的时候须要留意什么呢?有哪些格式须要留意呢?下面是我为大家收集的优秀范文,供大家参考借鉴,希望可以帮助到有须要的挚友。 c语言变量存储方式 c语言中变量的存储类型篇一 c语言变量是怎么储存的大家了解吗?下面一起去了解一下c语言变量存储布局是怎么样的吧,希望对大家有帮助! 1.正文段(.text):机器指令部分,是只读的,防止意外的修改; 2.初始化数据段(.data):保存程序中的全局变量且已被赋初值或在函数中被static修饰

2、的且已被赋初值的变量; 3.未初始化数据段(.bss):保存程序中的全局变量且未被赋初值或在函数中被static修饰的且未被赋初值的变量,这些变量由内核赋初值0; 4.堆:通常由程序员进行申请,最终进行释放; 5.栈:存放函数中的临时变量,函数调用时给变量安排内存,函数释放时释放内存。 下面以实际的.例子来分析变量存储空间: #include const int a = 10; int a = 20; static int b = 30; int c; int main(void) static int a = 40; char b = forward; register int c = 50

3、; printf(hello world %d, c); return 0; 1.全局变量a用const修饰,表示a是只读的,不行修改,段;留意,像a这种const变量在定义时必需初始化。因为只有初始化时才有机会给它一个值,一旦定义之后就不能再改写了,也就是不能再赋值了; 2.程序中的字符串字面值helloworld%d段的末尾,字符串字面值是只读的,相当于在全局作用域定义了一个const数组: const char helloworld = h, e, l, l, o, , w,o, r, l, d, , %, d, , ; 程序加载运行时,.段通常合并到一个segment中,操作系统将这个

4、segment的页面只读爱护起来,防止意外的改写; 3.全局变量a,b及函数中用static修饰的变量a;段中;都是初始化了得数据; 4.全局变量c未被初始化,段;由exec初始化为0,所以为初始化的全局变量默认值为0,函数内的static变量若没有被初始化,也位域该段,默认值为0;.在加载时合并到一个segment中; 5.函数中的字符数组b,安排在栈中,函数中变量c并没有在栈上安排存储空间,而是干脆存在eax寄存器里,后面调用printf也是干脆从eax寄存器里取出c的值当参数压栈,这就是register关键字的作用,指示编译器尽可能安排一个寄存器来存储这个变量。 修饰全局变量或者函数表示

5、该变量或函数的作用域为该本文件内; 修饰局部变量,该变量作用域仍旧是函数内,但是它并不是在调用函数时安排,在函数返回时释放,而是像全局变量一样静态安排,只初始化一次; ,用它修饰的变量在函数调用时自动在栈上安排存储空间,函数返回时自动释放,例如上例中main函数里的b其实就是用auto修饰的,只不过auto可以省略不写,auto不能修饰文件作用域的变量; er,编译器对于用register修饰的变量会尽可能安排一个特地的寄存器来存储,但假如实在安排不开寄存器,编译器就把它当auto变量处理了,register不能修饰文件作用域的变量(全局变量)。 ,extern关键字用于多个文件中声明同一个标识符; 1.静态生存期,具有外部或内部链接属性,或者被static修饰的变量,在程序起先执行时安排和初始化一次,此后便始终存在直到程序结束。,.段(静态区域),例如上例中main函数外的a,a,b,c,以及main函数里的a。 2.自动生存期,链接属性为无链接并且没有被static修饰的变量,这种变量在进入块作用域时在栈上或寄存器中安排,在退出块作用域时释放。例如上例中main函数里的b和c。 3.动态安排生存期,调用malloc函数在进程的堆空间(动态区域)中安排内存,调用free函数可以释放这种存储空间。 s(content_relate);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com