手机浏览器扫描二维码访问
{
intb=0;
}
定义在函数参数列表或者内部被称作局部变量,例如变量a和变量b。而定义在函数外部变量global则被称为全局变量。
这二者有什么分别呢?
最大的分别自然就是作用域不同,还有就是生命周期不同。作用域咱么就不多讲了,现在来说说生命周期。
局部变量的一生是这样度过的:当调用函数的时候执行它们的声明语句,这时它们就出生了。然后等到函数执行完,它们就会被无情的杀死。
全局变量就不一样了,它在程序开始执行时就出生了,要等到整个程序运行结束的时候才是死亡,可以说是与天地同寿。
也就是说,全局变量会一直占用这内存不释放。因此,我们在声明一个变量时一定要考虑它的作用域,应该在实现功能的情况下尽量让其作用域更小,让其脱离作用域后就释放,提高内存的使用效率。」
「那这么说来局部变量很可怜,一辈子兢兢业业,任劳任怨,存活的时间还那么短暂。」
我感叹道。
「谁说不是呢,局部变量就像是你老爹我这样的为了生活在社会底层**丝,一辈子任劳任怨,却又碌碌无为。」
可能是我的话戳中了老爹心中的软肋,他一下子变得有些伤感。
「当然了,**丝也有成功逆袭的时候,所以希望还是要有的嘛。」
原本还想安慰一下老爹,没有到他瞬间又恢复了原来的模样。
「说到这里,咱们就来说说如何让可怜而又短命的局部变量成功逆袭,踏上与与天地同寿的人生巅峰。」
老爹突然有让人振奋的声音说道。
「……」
我有点无语,感情他刚刚一幅伤感、心酸的模样就是为了渲染气氛。
「在关键字中有一个叫做static的关键,它有两个作用,其中一个作用就是可以让局部变量逆天改命,让它具备与天地同寿的能力。
voidfuncf(void)
{
staticintc=0;
}
它的用法就是这样,在函数内部声明一个局部变量的时候用static修饰它,这样它就可以与天地同寿了。
除此之外,人生轨迹也发生了变化。
如果没有static修饰变量c,每次调用funcf()的时候都会执行int=0这句,然后函数调用完了,它就被杀死了。
但是现在它被static逆天改命了,情况就变得不同了。首先,只有在第一次调用函数funcf()的时候才会执行intc=0。其次,在funcf()执行结束后,它也不会再被杀死。
等到下一次在执行funcf()的时候,c还保持着上一次的状态。」
诚如老爹所言,我和小弦子写代码验证了一下,结果和老爹的说法完全一致。
「那static是如何做到为一个变量逆天改命的呢?我看动漫里边逆天改命都要付出很大的代价。」
我也想问这个问题,没有想到让小弦子给领先了。
「这个就涉及到内存分区了。
先前已经跟你们说了,程序要运行需要先被加载到内存中去,这个加载也不是随便加载的。
运行程序的内存被分成了五个区,它们分别是:代码区、常量区、全局数据区、堆区、栈区。」
原书名重生红三代四九城内,被称为太子党中最窝囊的私生子,聂振邦不堪重负终于自杀了,却重生回到了和父亲相认之前的那一刹那。悲剧是否还会重演?赫赫有名的红三代还能在四九城成为无人不知无人不晓的存在么?家道中落,这一世,聂振邦还会让历史重演吗?私生子也有掌控家族的那一天么?...
2018年起点第一部足球精品足球冠军系统附体,卢文斌化身冠军收割者。从德乙到德甲,从联盟杯到欧冠,卢文斌就是冠军的保证。他在俱乐部的终极目标,是在英超...
绝世仙帝重回都市,身怀无上医经绝世仙典。财富?地位?美人?这些不过是袖手可得的浮云罢了。这一世,唐昊志在仙道,步步登天,弹指碎青云!...
西方黑暗世界十二君王之一,暴君大人,一手创立的君王殿,傲立于西方黑暗世界,谁人听到暴君二字不闻风丧胆,却甘愿为了一个女人,放弃唾手可得的天下...
林清霞我们很早就认识啦,高中的学校有在一条街上!邓丽君梓钧是我见过最有音乐天赋的人。古龙小王酒量不错。琼瑶我很喜欢他小说中的爱情。倪匡我以为自己一小时写4500字已经很快了,直到认识了王梓钧赵雅芝很感谢他把我带进演艺圈。看了好多写香港的写好莱坞的写韩国的重生小说,我来试试写一下台湾吧。...
关于异能高手砰!车子撞在周宇的后背上,巨大的力量一下子就将他和那个美女撞飞了出去。轰!!一道四五米粗的闪电击中了尚在空中的两人。白光一闪,两人竟是消失在了那处空间!...