全局变量是在函数以外的任意位置定义的变量,全局变量也称为外部变量。全局变量的作用域从定义它的位置开始,直至它所在的源程序文件结束。如果不在作用范围内,要想使用该全局变量,则可以采用声明的方式来拓展变量的作用范围。
可以使用全局变量作为函数之间传递数据的桥梁,在全局变量作用域内,任何函数都能引用该全局变量,所以可以让全局变量在函数之间传递数据。
但是,由于在全局变量作用域内的任何函数都可以对全局变量进行修改,而这个修改可能影响其他引用这个变量的函数,因此全局变量的使用不当就可能会导致程序错误。
全局变量的主要缺点是造成函数的通用性降低。从结构化程序设计的角度来看,一个函数应该完成一项单一的功能,若使用全局变量,就会增加函数之间的依赖性,增强函数间的耦合,所以在一般情况下,应尽量避免使用全局变量。
全局变量与局部变量可以同名,此时在局部变量的作用域内,同名的全局变量被屏蔽,局部变量有效。(www.daowen.com)
例6.12 分析下面程序中的全局变量和局部变量。
程序代码如下:
【分析】该程序中定义了两个全局变量sum和aver,这两个全局变量的作用域为整个源程序。在函数func内定义了局部变量k、sum和数组x。函数func内的局部变量sum与全局变量sum同名,全局变量sum在函数func内被屏蔽、不起作用,局部变量sum在函数func内部有效。全局变量aver在函数func内有效,因为没有与aver同名的局部变量。
main函数内的变量k和数组y也是局部变量。程序从main函数开始执行,调用函数func,在函数func内计算数组x各元素的和、存储在局部变量sum中,然后输出局部变量sum的值;再计算全局变量aver的值,然后结束函数func的运行,释放局部变量k、sum和数组x。回到main函数后,利用for循环计算数组y的和,将其存储在全局变量sum中并输出,最后计算全局变量aver的值并输出。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。