全局变量与局部变量
/1.局部变量
每一个模块,例如主程序、子程序和FUNCTION函数,如果不加以特别说明,它们各自中
的变量都只在本模块中有效,或者说它们的作用域只限于本模块。例如主程序中变量a的值
为4,想直接在子程序输出a的值4,是做不到的。
例a为局部变量。分别输出主程序中a和子程序中a的值。
DECLATRSUBTry(n!)
a=4
PRINT"ainmainprogramis:";a
CALLTry(4)
END
SUBTry(n)
PRINT"ainsubprogramis:";a
FORi=1TOn
PRINT",,,,,"
NEXTi
ENDSUB
运行结果如下:
ainmainprogramis:4
ainsubprogramis:0
,,,,,
,,,,,
,,,,,
,,,,,
可以看出:由于未加特别说明,主程序中的变量a只在主程序中有效。子程序中变量a
与主程序中的a不是同一个变量,各自有其存储单元。由于子程序中的a未被赋值,故输出初始化时的值0。
这种只在本模块中有效的变量,称为局部变量。
未加特别说明,在主程序中使用的变量也是局部变量,只限于主程序内有效,不要以为主程序中的变量在整个程序各模块中都有效。
一些BASIC版本如BASICA和GW-BASIC中,由于不提供局部变量,所有子程序和自定义函数都和主程序处在同一模块中,而不是分别组织在不同模块中,所以它们都是全局变量。
/2.全局变量
全局变量是指在程序所有模块中都有效的变量,即其作用域为整个程序的变量。
QBASIC
规定
关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定
可以用COMMONSHARED语句对变量作全局申明,用DIMSHARED语句对数组作全局申明。其格式分别为:
COMMONSHARED〈变量表列〉
DIMSHARED〈数组表列〉
例如:
COMMONSHAREDx!,y#,z%,w$指出实型变量x!、双精度整型变量y#、整型变量Z%、字符串变量w$为全局变量。
DIMSHAREDa1(15),b2(5,12),c3(4,5,6)指出一维数组a1、二维数组b2、三维数组c3为全局数组。
COMMONSHARED和DIMSHARED语句应写在主程序的开头位置,在所有执行语句之前。