java与c/c++的差异(一)

  复合语句或者块是指若干简单的语句由一对花括号包围,花括号里面的定义的变量只在这一对花括号的范围内有作用。

  在一个函数中,可能会有很多对花括号包围的块。例如,java语言的一个简单实例:  

public class test{  
    public static void main(String[] args)
    {
        for(int i=0; i<10; i++)
        {

        }
        for(int i=0; i<10; i++)
        {


         }
    }
}

  c语言的实例:

void main()
{
    for(int i=0; i<10; i++)
    {

    }
    for(int i=0; i<10; i++)
    {
 
    }    
}

  但是,java语言不能在嵌套的两个块中声明同名的变量。即下面的代码是有错误的:

public class test{  
    public static void main(String[] args)
    {
        int i=0;
        for(int i=0; i<10; i++)
        {

        }
        for(int i=0; i<10; i++)
        {


         }
    }
}

    这里会报一个错误是:变量i已经在main函数中定义了。错误的地方指向了两个for循环中的i。但是在c/c++语言中,这样的嵌套定义是被允许的,内层的变量会覆盖掉外层的变量。因为嵌套定义有可能会导致程序设计错误,因此在java语言中被禁止了。

posted on 2017-06-14 00:36  残余的光  阅读(113)  评论(0编辑  收藏  举报

导航