理论教育 局部变量和参变量的作用及屏蔽问题

局部变量和参变量的作用及屏蔽问题

时间:2023-11-20 理论教育 版权反馈
【摘要】:如果变量在方法之中或在一个复合语句之中声明,那么该变量为局部变量,其作用域仅在该方法或复合语句之中。方法的参数称为参变量,也是局部变量,其作用域也仅局限在方法内部。局部变量和参变量的例子。如果局部变量与全局变量同名时,方法中的局部变量将同名全局变量屏蔽,只对局部变量进行操作。

局部变量和参变量的作用及屏蔽问题

如果变量在方法之中或在一个复合语句之中声明,那么该变量为局部变量,其作用域仅在该方法或复合语句之中。方法的参数称为参变量,也是局部变量,其作用域也仅局限在方法内部。

【例8-10】局部变量和参变量的例子。

程序运行结果:

调用方法前x=1

调用方法后x=1

以上程序中,main()方法中的变量x和fx()方法中的变量x,分别在各自的方法中进行声明,变量名虽然相同,却是两个方法各自的局部变量,是两个不同的变量。方法调用语句fx(x);只是把main()方法中的变量x的值传递(复制)给fx()方法的参变量x,main()方法中的变量x的值不会因为fx()方法中的变量x的运算而发生改变。

如果局部变量与全局变量同名时,方法中的局部变量将同名全局变量屏蔽,只对局部变量进行操作。

为减少因变量名相同而引起的误解,在声明变量时,不同变量的名称尽可能不要相同。

【例8-11】局部变量与全局变量同名的例子。(www.daowen.com)

程序运行结果:

调用方法前x=1

调用方法后x=1

从上面的例子中可以看出,方法fx()中的x++操作,只对局部变量x加1,对全局变量x没有影响。也可以认为,如果全局变量和方法中的局部变量同名时,方法只承认局部变量x。

如果变量在复合语句的{}中声明,那么该变量的作用域只局限在{}之中。

例如:

for循环语句中,可以在()中的第一个表达式进行变量声明和初始化,这里所声明的变量也是局部变量,其有效范围只在该循环语句中有效。

例如:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈