在 C/C++ 语言中,是允许静态局部变量的。
例如下面的代码
main.c
#include <stdio.h> int main() { static int i = 10; i++; printf("%d\n",i); }
编译运行以上代码,输出结果如下
[yufei@www.twle.cn java]$ gcc -o main.out main.c && ./main.out 11
但是,作为 Java 工程师的你,Java 中允许静态局部变量的存在吗?
也许结果会令你大跌眼镜。答案竟然是: 否
Java 中是不允许声明静态局部变量的。
例如下面的代码,会产生一个编译错误
public class JavaTester { public static void main(String args[]) { System.out.println(fun()); } static int fun() { //Error: Static local variables are not allowed static int x= 10; return x--; } }
编译结果如下
[yufei@www.twle.cn java]$ javac JavaTester.java && java JavaTester JavaTester.java:10: 错误: 非法的表达式开始 static int x= 10; ^ JavaTester.java:11: 错误: 非法的类型开始 return x--; ^ JavaTester.java:11: 错误: 需要<标识符> return x--; ^ JavaTester.java:14: 错误: 需要class, interface或enum } ^ 4 个错误
目前尚无回复