求助!!精通Visual Foxpro的大哥大姐进!在下感激涕泞...

主程序MAIN.PRG*SUB1.PRG*SUB2.PRGCLEAPARABPRIVCA=1PRIVCA=3B=1A=2B=3C=1C=2C=3DOSUB1WITHA?A... 主程序MAIN.PRG *SUB1.PRG *SUB2.PRG
CLEA PARA B PRIV C
A=1 PRIV C A=3
B=1 A=2 B=3
C=1 C=2 C=3
DO SUB1 WITH A ?A,B,C ?A,B,C
?A,B,C DO SUB2 RETU TO MASTER
RETU B=2
RETU
程序的运行结果是什么?
展开
 我来答
yaozhun_fox
2010-12-23 · TA获得超过306个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:280万
展开全部
结果
2 1 2
3 3 3
3 1 1

在变量的定义传递和引用中要遵循以下几条:
1. 变量须先定义在使用(VF中:主程序的私有变量、子程序中在上级程序里未曾出现过的私有变量可以不定义)
2. 变量访问时优先级遵循顺序:局部变量>私有变量>全局变量
3. 按值传递不改变上级程序变量的值,按参传递改变上级程序变量值

分析如下
程序执行顺序 变量变化
main sub1 sub2
clear
a=1 a=1
b=1 b=1
c=1 c=1
do sub1 with a &&按值传递
para b &&在sub1中建立私有变量b接收了main中a的值
b=1
priv c &&在sub1中定义一个私有变量c c=null(空值)
a=2 &&sub1中未定义a,访问main中的私有变量a
a=2 a=2
c=2 &&访问sub1中定义的所有变量c c=2
do sub2
priv c && 在sub2中定义私有变量c
a=3 &&同sub1中'a=2'字句 a=3 a=3 a=3
b=3 &&访问sub1中'para b'接收参量字句时定义的私有变量b
b=1 b=3 b=3
c=3 &&访问sub2中定义的所有变量3 c=3
return to master && 返回main程序

最终变量值 main sub1 sub2
a 3 3 3
b 1 3 3
c 1 2 3

至于输出结果,对照过程中变量的变化容易得知
sax6310
2010-12-23 · TA获得超过1153个赞
知道小有建树答主
回答量:639
采纳率:0%
帮助的人:655万
展开全部
3,2,3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
whql3
2010-12-23 · TA获得超过5131个赞
知道大有可为答主
回答量:5379
采纳率:0%
帮助的人:1086万
展开全部
从主程序来看,没有声明全局变量!!
共三个输出:
第一个输出产生于 sub1,其次是sub2,然后回过头来执行主程序中的输出
2,1,2
3,3,3
1,1,1
你在程序中运行一下不就知道了??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式