Java 中允许静态局部变量吗?

yufei       6 年, 1 月 前       761

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 个错误
目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.