- 1、本文档共93页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序运行的结果是: 4 7 4 7 4 7 * 2. 模块级变量 声明 在模块的通用声明段中用以下关键字声明的变量。 Private 在模块运行时被初始化 Dim 在模块运行时被初始化 作用范围 在该模块的所有过程中都起作用,不会每次运行被初始化。 其他模块不能访问这些变量 * 【例7-20】 将例7-19的程序作如下改动,则单击单击三次Command1按钮的结果是什么? Option Explicit Dim x, y, a% x,y,a在窗体模块的通用声明段用Dim语句定义,为模块级的变量 Sub p(a As Integer) x = x + 1 y = y + 2 a = a + x + y a为引用传递的形参,是双向传递的 End Sub * Private Sub Command1_Click() a = 1 Call p(a) 将赋值为1的实参传给形参 Print a; 在过程改变a的值要回传给实参,所以为4 Call p(a) 将赋值为4的实参传给形参 Print a End Sub * 程序运行的结果是: 4 10 10 22 16 34 * 3. 全局变量 声明 在模块的通用声明段中用以下关键字声明的变量 Public 作用范围: 应用程序的所有过程 * 4. 变量屏蔽 当不同作用域的变量同名时,下级变量将屏蔽上级变量,即局部变量屏蔽模块级变量和全局变量,模块级变量屏蔽全局变量。 【例7-21】 有如下程序,单击Command1按钮的结果是什么? 程序代码如下: Dim num As Integer 此处num是模块级的变量 Private Sub Command1_Click() Dim n As Integer n = 5 num = 4 Call add(n) Print num num为模块级变量,值为4 End Sub * Private Sub add(num As Integer) 同名的局部变量num num = num + 1 此处num的值为5,而不是4 Print num; 此处num的值为6 End Sub 程序运行的结果是: 6 4 * * 7.6.2 变量的生存周期 当一个过程被调用时,系统将给该过程的局部变量分配存储单元,当该过程执行结束时,是释放还是保留变量的存储单元,这就是变量的生存期问题。 静态变量: 应用程序执行期间保留不变。 动态变量: 所在的模块(过程)运行时被初始化。 * 对于用Dim语句声明的局部变量,或不加任何声明直接在过程中引用的变量,当过程结束时,释放变量所占用的存储空间; 对于用Static语句声明的局部变量,在程序第1次运行该变量所在的过程时被初始化,且在过程结束时不释放该变量所占的存储空间,下次再次运行此过程时这种变量不会被重新初始化,而是保留上次退出过程时的值。 * 【补】比较以下两段代码在多次单击命令按钮Command1后的输出结果。 代码段一: Sub a() Dim i As Integer i = i + 10 Print i End Sub Private Sub Command1_Click() Call a End Sub * 代码段二: Static Sub a() Dim i As Integer i = i + 10 Print i End Sub Private Sub Command1_Click() Call a End Sub Sub p1(x As Integer, ByVal y As Integer) x = x + 10: y = y + 20 End Sub Sub p2(ByVal x As Integer, y As Integer) x = x + 10: y = y + 20 End Sub Sub p3(ByVal x As Integer, ByVal y As Integer) x = x + 10: y = y + 20 End Sub * 【例7-9】 编写一个函数过程,计算x的y次方,其中y0。单击窗体时调用该函数过程,打印51、52、53、54、55的结果。程序代码如下: Option Explicit Dim r As Sin
文档评论(0)