首页 百科知识 java有静态局部变量吗

java有静态局部变量吗

时间:2022-10-16 百科知识 版权反馈
【摘要】:在main和test函数中都使用了变量a、b和c,虽然同名,但分属于不同的函数。变量c被定义为全局变量,其作用域为整个程序,test函数中c的变化影响main函数中c的变化。另外,在test函数中,a被说明为静态局部变量,其值在函数每次调用结束后被保留,而b为自动变量,函数每次调用结束后被释放,再次调用时被重新初始化为0。

7.4.1 静态局部变量

函数内定义的静态变量为静态局部变量,例如:

img475

说明:

静态局部变量的作用域同自动变量,即为所在的函数,两者不同处在于,函数调用结束后,自动变量的值被释放,而静态局部变量的值将被保留(两者存储的方式不一样)。

例7-7 使用静态局部变量计算1~6的阶乘。

img476

运行结果如图7.4.1所示。

img477

图7.4.1 静态局部变量的使用

说明:

在fact函数中将f变量定义为静态局部变量,每次调用结束后f变量将保留上次计算的阶乘值,上次阶乘值乘以i,即为i!。

例7-8 本例说明全局变量、自动变量和静态局部变量的使用。

img478

运行结果如图7.4.2所示。

说明:

在main和test函数中都使用了变量a、b和c,虽然同名,但分属于不同的函数。在test函数中,a和b的变化不会影响main函数中的同名变量。变量c被定义为全局变量,其作用域为整个程序,test函数中c的变化影响main函数中c的变化。另外,在test函数中,a被说明为静态局部变量,其值在函数每次调用结束后被保留,而b为自动变量,函数每次调用结束后被释放,再次调用时被重新初始化为0。

img479

图7.4.2 全局变量、静态变量和自动变量的使用

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

我要反馈