计算机二级报名问题_二级计算机的问题

原问题:二级计算机的问题
分类:编程开发 > 最后更新时间:【2017-03-07 23:39:02】
问题补充:

用下面这个例子解释这段话

最佳答案

其实看不懂的话,

把主程序改写一下就好了:

x1=10

y1=100

x2=50

y2=y1

x2='aaa'

y1='bbb'

?x2,y2

?x1,y1

……

你说输出结果是啥?


追问:
aaa F10 bbb 追答:
嗯,编译器没有给Y2合理值,这里F可能是FAULSE或NULL的意思了。其余呢,能理解吗?
追问:
不是说全局变量在任何模块都有效吗,那为什么答案不是bbb还是F呢
追问:
什么是暂时失效什么是恢复其原值
追问:
你这是什么意思我还是不明白 追答:
*...x1=10y1=100*...*这里public定义了2个变量xy理解成(x1,y1)****以下进入子程式p8****priv x 理解成新建变量(x2)****local y 理解成新建变量(y2)****... x2=50 y2=f****...********以下进入子程式p9********x在这里没有重新定义则继承上级(x2)********y也没有定义但上级(y2有local)就只好继承上级的上级(y1)********... x2=3 y1=3********...********以下离开子程式p9回到p8****... ?x2,y2****...****以下离开子程式p8回到main*...?x1,y1*...*主程式结束 追答:
亲,我请你喝咖啡吧,当面用白纸黑字给你写一遍……好歹这么多问题了,一顿咖啡换你采纳几个答案吧…… 追答:
*前面有笔误,以此为准*...****...********以下进入子程式p9********x在这里没有重新定义则继承上级(x2)********y也没有定义但上级(y2有local)就只好继承上级的上级(y1)********... x2="aaa" y1="bbb"********...****...*...
追问:
这个这些变量都是什么变量我搞清楚了,只是还不清楚为什么P8中的答案是aaa F
追问:
一开始的变量只赋了值但是没定义什么变量那是什么变量哦 追答:
嗯,因为p8里的?是打印的p8而不是打印全局变量哦!……一开始的变量没有定义,说明是继承了上级的,只不过上级的程序没有写出来、也跟问题没有关系所以定义不定义问题不大。
追问:
只是还不清楚为什么P8中的答案是aaa F 追答:
p8里面x是被p9改掉啦,因为p8的x是private是可以被下级模块修改的。
追问:
local就不可以改 追答:
是呀,p9可以改p8的private,但是不能改p8的local。
追问:
可是不是说全局变量在任何模块都有效吗,为什么P9中的Y是全局变量呀 追答:
因为p8对y进行local,p9找不到p8里有y就再网上去找到了public的y咯!
追问:
上面那段话就是local的意思吗 追答:
哪段话?
追问:
P8的运行结果是aaa就是说作用域在本模块或下属模块的吗 追答:
是呀,你看aaa是在哪里赋值的呢?
追问:
P8的子程序
  • 追答:
    那就对啦!恭喜你……不过别忘记了采纳呀,还有之前那些问题都没采纳……
    最佳答案由网友  jariii  提供
  • 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
    5

    分享到:

    其他回答

    暂无其它回答!