手机浏览器扫描二维码访问
一切准备就绪后,老爹把他电脑屏幕投放在了投影仪上。
「上一周我们先聊了函数,知道了什么是函数,为什么要用函数以及如何使用函数,接下来又说到了变量的作用域、全局变量和局部变量。
最后说到关键字static能够帮局部变量逆天改命,让局部变量成为与天地同寿的存在,小弦子提出疑问,static是如何做到的,于是就引出了c语言的程序运行时在内存中分区。
c语言的程序运行时在内存中的分区按照内存地址从低到高一共分为:代码区、常量区、全局数据局、堆区、栈区,其中代码区和常量区已经介绍过了。
代码区存放的编译成机器语言的程序代码,cpu在执行程序的时候,会挨着挨着读取、执行,最后在程序结束的时候由系统释放。
常量区存放的是数字、字符、字符串等常量。至于什么常量,我们也用100块买薯片的例子来说明了。
这里要补充一点,有个神奇的关键字能够将一个变量变成一个常量,它就是const,如果一个变量在声明时被const修饰,那么这个变量就摇身一变,变成了一个常量。
这样的变量需要在声明时并对其初始化,一旦初始化完成后,这个变量就和其他常量一样不能再修改了,就像这样:
constintpic_width=50;
intconstpic_width=50;
这两条语句表达的意义都是一样的,都是符合c语言规范的,你们可以选择一种自己喜欢的方式,不过两种方式都要认识,不然以后看到别人用另外一种方式还以为是人家用错了,那就糗大了。
被const修饰的全局变量,也就是全局常量也是放在常量区的。」
我和小弦子都都尝试了一下,如果声明一个被const修饰的变量不对其进行初始化,编译器会报错。如果初始化之后又对其进行赋值,依然会报错。
「第三个区:全局数据区,所有被static的变量和全局变量都是放在全局数据区的,这个区也是在程序结束以后由系统释放。
第四个取:堆区,使用这个区就需要我们自己申请使用内存了,并且还必须自己释放。如果申请了内存不释放,就会导致内存泄露。假设在一个死循环中不断申请内存并且不释放的话,那计算机秒秒钟就会因为内存耗尽卡死了。
申请内存的函数是malloc,释放是free,都是由库函数提供的。
最后一个区:栈区,所有除static修饰的局部变量都是放在这个区的,包括被const修饰的局部常量。一旦一个局部变量脱离了作用域,那么系统就会在栈中将它无情的杀死。
而static之所以能够为局部变量逆天改命,就是因为被它修饰后的变量已经从栈区转移到了全局数据区,这个区里的数据要等到程序结束的时才会被释放,都是和天地同寿的存在。」
「哦哦,原来是这样哦……」
难怪老爹要这么大的力气给我们讲内存分区,原来就是为了这一句话服务。
「static除了有给局部变量逆天改命,它还有另外一个技能——隐身术。」
梦灾末世生存指南 上门龙婿陆凡 顾九辞霍明澈 青梅千千结 夫人的病今天好了吗 迟宠 我的蛮荒部落 异界烽火录贰烽云再起 戚风童话 四龙攒凤 大佬甜妻宠上天 最强豪婿陆凡 嗣子荣华路 张钟颖 王妃称心 衫生诡 阴阳眼小师妹 韩娱之聚光 龙婿陆凡 校园全能马甲女神
(甜宠文)小可爱,我想进去可外面有人没事,他们不会进来的。顾子安轻声哄道。红豆无奈,古人的好奇心都这么大吗?超市逛了无数次,顾子安还是这么念念不忘。穿越前,红豆是身高五尺的女汉子穿越...
一代战神秦九州重归都市,为弥补遗憾,搅动风起云涌,以不败之资横行四方,诸天震颤。...
武装现代高科技,前往异界抢粮,抢米,抢美女。穷沟沟里出来的大学生陈青,偶然得到可以穿梭不同空间的位面之门。没钱花,异界的黄金多如牛毛。没妞泡,异界的美眉投怀送抱。什么?你说异界的猛兽很多,高手如云。嘭!我有神枪大炮在手,你来一个我崩一个,你来两个我崩一双。PS建了一个书友群,喜欢的加一下吧。群号134684907...
黎漠,武艺高超医术一流,在山上修行自在的黎漠忽然被师傅桐老赶下山,去做了海城欧阳家的上门女婿。...
搜小说免费提供作者清各的经典小说我的奇幻道具最新章节全文阅读服务本站更新及时无弹窗广告欢迎光临观看小说2019年,一个一事无成的年轻人,在情场和职场都失忆的时候,由于一场意外回到了2010年,回去后的主角大脑被开发到百分之百,聪明过人,此外还得到一张余额正无穷银行卡,从而改变自己的命运。...
21世纪全职主妇,一朝穿越,誓要断情绝爱一心搞事业。可好不容易跟原主青梅竹马的未婚夫退了婚,却又来了一个怎么甩也甩不掉的摄政王。说好的断袖?说好的好男僻呢?某王本王喜欢的是女子,苏苏若是不信,大可亲自一试。苏苏SOS怎么逃都逃不掉,这可如何是好?在线等,挺急的。本文1VS1,男女主双洁,强强联合,独宠,女强...