Java和C语言都有局部变量的概念,不过在使用中有一些区别。
// C语言的例子 #include <stdio.h> void example() { int i = 0; printf("i的值为:%d\n", i); i++; } int main() { example(); example(); return 0; }
在C语言中,函数内部定义的局部变量的初始值是不确定的。当然,你可以自己初始化变量的值。另外,在一个函数内多次调用同一个局部变量的值并不会被保留,相当于重新初始化。因此,以上代码的输出结果如下:
i的值为:0 i的值为:0
而在Java中,局部变量是强制要求被初始化的,否则会编译不通过。另外,Java中的局部变量在方法执行期间一直存在,直到方法执行完毕或被中止,否则它们的值不会丢失。
// Java的例子 public class Demo { public static void main(String[] args) { example(); example(); } public static void example() { int i = 0; System.out.println("i的值为:" + i); i++; } }
因此以上Java代码的输出结果如下:
i的值为:0 i的值为:0
可以看出,Java中多次调用同一个局部变量的值并不会被重新初始化。