展开全部
先看按钮1 事件: 数组a()被赋值 a(0)=1 a(1)=2,a(2)=3,a(3)=4,a(4)=5
下面 开始运行以数组a()为参数的proc()程序:注意 一开始声明了一个 I 变量,前面加了STATIC,因为是在函数体内声明这个静态变量,所以这个I 为静态局部变量,静态局部变量有下面一些特征:
(1)静态局部变量在函数内定义,但不像自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。
(2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。
(3)允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋值。数值型变量自动赋初值0,字符型变量赋空字符
简单来说 I 的值会一直存在于函数PROC 中 会随着程序的进行它的值会发生变化,而且这个值有遗传性,不会随着程序的结束而被重新清牌
很明显 你程序中 static i as integer 定义了一个静态局部变量I 因为没有显式初始化,所以初始值为0
接下来do
x(i)=x(i)+x(i+1)
i=i+1
loop while i<2
这里 先做了一遍 x(0)=x(0)+x(1) x(0)被赋值为3
然后i+1=1 <2 所以又做了一遍循环 x(1)=x(1)+x(2) x(1)=5
这时候i=2 不做循环了 即第一个PROC(A)的结果为 3 5 3 4 5
注意:静态局部变量I的值为 2 并将一直存在
接下来 第二个proc(a) 还是DO LOOP 程序 程序先做一遍 DO 因为I =2 所以
X(2)=X(2)+x(3) X(2)=7
i=i+1 I 为 3
proc(a)结束
所以整个数组 现在的情况为 a(0)=3 a(1)=5,a(2)=7,a(3)=4, a(4)=5 自此 程序结束。
综上所述 这个程序就是 STATIC 跟 DO LOOP 的知识点 掌握了就可以了
当然你可以再添加一个PROC(A) 会发现结果为 3 5 7 9 5
下面 开始运行以数组a()为参数的proc()程序:注意 一开始声明了一个 I 变量,前面加了STATIC,因为是在函数体内声明这个静态变量,所以这个I 为静态局部变量,静态局部变量有下面一些特征:
(1)静态局部变量在函数内定义,但不像自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。
(2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。
(3)允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋值。数值型变量自动赋初值0,字符型变量赋空字符
简单来说 I 的值会一直存在于函数PROC 中 会随着程序的进行它的值会发生变化,而且这个值有遗传性,不会随着程序的结束而被重新清牌
很明显 你程序中 static i as integer 定义了一个静态局部变量I 因为没有显式初始化,所以初始值为0
接下来do
x(i)=x(i)+x(i+1)
i=i+1
loop while i<2
这里 先做了一遍 x(0)=x(0)+x(1) x(0)被赋值为3
然后i+1=1 <2 所以又做了一遍循环 x(1)=x(1)+x(2) x(1)=5
这时候i=2 不做循环了 即第一个PROC(A)的结果为 3 5 3 4 5
注意:静态局部变量I的值为 2 并将一直存在
接下来 第二个proc(a) 还是DO LOOP 程序 程序先做一遍 DO 因为I =2 所以
X(2)=X(2)+x(3) X(2)=7
i=i+1 I 为 3
proc(a)结束
所以整个数组 现在的情况为 a(0)=3 a(1)=5,a(2)=7,a(3)=4, a(4)=5 自此 程序结束。
综上所述 这个程序就是 STATIC 跟 DO LOOP 的知识点 掌握了就可以了
当然你可以再添加一个PROC(A) 会发现结果为 3 5 7 9 5
展开全部
proc过程中的i是一个静态变量,其初始值为0,在随后的执行过程中,i的值会一直保留,在过程结束后也保留着,下一次调用时继续有效。
点击命令按钮时,
a数组的值a(0)~a(4)为:1~5
call是调用过程的命令
第一次调用后,a数组的值变为
3 5 3 4 5
i的值变为2。
第2次调用时,执行循环体一次,a(2)=a(2)+a(3),于是a数组的值就变成:
3 5 7 4 5
点击命令按钮时,
a数组的值a(0)~a(4)为:1~5
call是调用过程的命令
第一次调用后,a数组的值变为
3 5 3 4 5
i的值变为2。
第2次调用时,执行循环体一次,a(2)=a(2)+a(3),于是a数组的值就变成:
3 5 7 4 5
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询