北欧风格深化设计ppt:还是VF题

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 15:39:43
(22)在Visual FoxPro中有如下程 序:
*程序名:TEST.PRG
*调用方法: DO TEST
SET TALK OFF
CLOSE ALL
CLEAR ALL
mX="Visual FoxPro"
mY="二级"
DO SUB1 WITH mX
?mY+mX
RETURN
*子程序:SUB1.PRG
PROCEDURE SUB1
PARAMETERS mX1
LOCAL mX
mX=" Visual FoxPro DBMS 考试"
mY="计算机等级"+mY
RETURN
执行命令DO TEST后,屏幕的显示结 果为
A)二级Visual FoxPro
B)计算机等级二级Visual FoxPro DBMS 考试
C)二级Visual FoxPro DBMS 考试
D)计算机等级二级Visual FoxPro
能不能给点解释?教教俺!!

D
主要是因为SUB1程序中定义了local mX变量,使用LOCAL命令创建的变量或数组,只在创建它们的程序中被使用和修改,而不能被其外部程序作用,当包含local定义变量和数组的程序停止运行时,这些就是和数组也同时被释放。
所以从sub1返回后mX的值没有被改变,仍是Visual Foxpro
而在缺省状态下,变量只存在于创建它的过程、函数、方法和程序中,所以mY在整个程序中可以被修改,运行sub1后,它的值被修改为“计算机等级二级”,返回后,原变量值就是被修改后的值。
明白?!

D
这是按值传递的程序.
my是全局变量,在子程序里被重新赋值.返回主程序,即更新后的my
mx在子程序被定义局部变量,离开作用域,即离开子程序又回到原先定义等值