
上QQ阅读APP看书,第一时间看更新
3.1.4 函数的局部变量
函数体中除了形参外,还要有一些变量。在调用函数时,在内存中单独开辟一个空间,用于存储与函数有关的变量和数据,当函数运行结束后,与该函数相关的变量和数据都会被删除,函数体的变量和数据都作用在局部空间中,与主程序内的变量和数据是相互独立的,因此函数内的变量和数据都是局部变量,即便函数内的变量与主程序内的变量相同,也不会影响全局变量。
下面的代码是在主程序中创建全局变量mess="我是全局变量",然后调用函数var(),在函数中定义与全局变量mess名字相同的局部名字mess="我是全局变量",在函数中输出mess的值和mess的id值,最后在主程序中输出mess的值和mess的id值。从运行后的结果可以看出,虽然在函数中改变了mess中的值,但并没有影响到主程序中mess的值,而且函数中的mess的id值和主程序中的mess的id值不同。

如果想要在函数中使用全局变量,需要在函数中使用global关键字,说明函数中的变量是全局变量,例如在var()函数中,添加globalmess,mess将会是全局变量。从下面的代码的运行结果可以看出,在函数中改变了mess的值,全局变量的值也改变了,而且id值也相同。不建议在函数中直接使用全局变量,因为函数多次调用后,会使全局变量的值难以确定。
