vfp二级,如图,求解释,私有变量的作用范围?
1个回答
展开全部
在VisualFoxPro中,若以变量的作用域来分,内存变量可分为:公共变量、私有变量和局部变量三类。
在任何模块中都可使用的变量为公共变量•公共变量要先建立后使用,建立命令:•Public <内存变量表>•公共变量的初值为.f.,赋值后改变。一旦建立就一直有效,即使程序运行结束返回到命令窗口也不会消失。只有执行clear memory、release、quit 等命令后,公共变量才被释放。
局部变量是只能在建立它的模块中使用,而不能在其上层或下层模块中使用的变量。当建立它的模块程序运行结束时,局部变量自动释放。•局部变量必须先建立后使用,用local命令建立:•Local <内存变量表>•建立时赋初值.f.。
在程序中直接使用(没有通过public和local命令事先声明)而由系统自动隐含建立的变量都是私有变量。私有变量的作用域是建立它的模块及其下属的各层模块。一旦建立它的模块程序运行结束,这些私有变量将自动清除。
变量隐藏命令格式:Private <内存变量表>Private all [like通配符|except通配符]其作用是隐藏指定的在上层模块中可能已经存在的内存变量,使其暂时失效,命令改变当前或下属模块变量时就不会影响上层变量的值,当前模块结束,返回上层模块时,被隐藏的内存变量就自动恢复有效性,并保持原值。
上述程序中,m、n为私有变量,初值为m=n=10, 执行sub1时,m被隐藏,并被赋值为5,私有变量n改变为6,执行sub2时,被隐藏的m恢复为原值10,n变为6;接着,n被隐藏,并被赋值200,m的值改变为100。执行完毕,返回到sub1,n恢复为6,再返回到主程序,m的值恢复为10。执行显示m,n,此时m的值为10,n的值为6
在任何模块中都可使用的变量为公共变量•公共变量要先建立后使用,建立命令:•Public <内存变量表>•公共变量的初值为.f.,赋值后改变。一旦建立就一直有效,即使程序运行结束返回到命令窗口也不会消失。只有执行clear memory、release、quit 等命令后,公共变量才被释放。
局部变量是只能在建立它的模块中使用,而不能在其上层或下层模块中使用的变量。当建立它的模块程序运行结束时,局部变量自动释放。•局部变量必须先建立后使用,用local命令建立:•Local <内存变量表>•建立时赋初值.f.。
在程序中直接使用(没有通过public和local命令事先声明)而由系统自动隐含建立的变量都是私有变量。私有变量的作用域是建立它的模块及其下属的各层模块。一旦建立它的模块程序运行结束,这些私有变量将自动清除。
变量隐藏命令格式:Private <内存变量表>Private all [like通配符|except通配符]其作用是隐藏指定的在上层模块中可能已经存在的内存变量,使其暂时失效,命令改变当前或下属模块变量时就不会影响上层变量的值,当前模块结束,返回上层模块时,被隐藏的内存变量就自动恢复有效性,并保持原值。
上述程序中,m、n为私有变量,初值为m=n=10, 执行sub1时,m被隐藏,并被赋值为5,私有变量n改变为6,执行sub2时,被隐藏的m恢复为原值10,n变为6;接着,n被隐藏,并被赋值200,m的值改变为100。执行完毕,返回到sub1,n恢复为6,再返回到主程序,m的值恢复为10。执行显示m,n,此时m的值为10,n的值为6
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询