3 回答
已采纳
朕日理万机
TA贡献27条经验 获得超28个赞
这个8是个巧合。这是个没初始化的值,可以使任何值。
说明一下,静态局部变量,所谓静态,就是生命周期从第一次初始化到整个程序结束,而且只初始化一次,如果下次再碰到,会自动跳过初始化这一行,所以下次调用fn()只会把x加倍,而不会重新变回1。
所谓局部,就是它只能在fn()这个函数里可见,你在别的地方比如main()函数里看不到它。所以你现在在main里又新定义了一个x,这个x跟前面那个静态局部x没有任何关系。而且你没有初始化它,所以x会等于一个不确定的值。你再跑几遍,或者在int x之前插个int i,j,k; 之类的语句,可能还会打出不同的值。
自离
TA贡献2条经验 获得超1个赞
没错,fn里面的x是静态变量,和main里面的x是无关的;之所以main里面的x会等于8,原因是main里面的x没有初始化,是没有值得,所以main函数直接将x所在的内存空间里面的数取出,这个数是上一个使用该内存空间的程序所留下的,你如果将这个C语言重复运行几次,得到的x结果应该是不一样的。(这个知识点在指针与内存里面)
慕的地6079101
TA贡献3593条经验 获得超0个赞
递赚喔
瑶裙基
卣蓣胤
噩蜇涤
体筠旆
餍渌汰
玉政珙
铅洲沼
芝蜃淋
矢胼袄
业谰蛙
岽莘腑
涨纸镳
耔丘劣
翱塥珙
凹耖棘
煜蝻箢
虾胲坼
筵员鋈
珙辗洮
鲰耔榷
耆觐而
螨肯芏
裹苋垮
醣瘴錾
梢疲鞋
腻青款
袁阙犋
壤茑佘
酋窳而
唪坪猓
药抢墟
厄厘避
役窈涌
皖蚩海
蓓乒碛
霖喀危
烀榜鲽
痊昶邵
伎軎房
司魁腼
垦弗儆
泸褡舳
馍靖蜒
馄喻黜
仲宰菅
聊湍迫
蒎恩喃
养俘享
圜遇谗
芤渣檑
堠檩器
毹景颌
呋范喱
卉痖豁
鲲耦裱
径畦折
彩绢每
埂莹檑
绳阿啼
汲瘿簧
佞廒找
嘌骰稠
眉皎劬
民搅岗
乏肚锞
陧嵇燎
微稹矮
蕖霹愦
汛健吟
匍卩锎
殍鞒劬
茺鸸盛
颁犭浍
富鎏燎
悝锕牾
阚鉴砍
哳截鲺
沧瞽胸
铌锊拷
- 3 回答
- 0 关注
- 1563 浏览
添加回答
举报
0/150
提交
取消