变量的作用域

32 阅读1分钟

说人话就是变量在哪起作用

  • 全局变量:在函数外定义的变量
  • 局部变量:在函数中定义的变量
  • 程序块中的变量:在函数内部的复合语句中定义的变量
    int g_max = 10;//全局变量,从定义的这一刻起,向下都可以使用
    //注意!!!如果将该变量定义在最下方,即使它是全局变量也不能编译通过
    void fun() {
        //a是局部变量,作用域只在该函数内
        int a = g_max;//可以使用全局变量int
    }
    int main() {
        //x是局部变量,作用域只在该函数内
        int x = g_max;//可以使用全局变量部变量
        
        return 0;
    }
    
    //可以编译通过,因为这两个变量的作用域不同
    void fun() {
        int sum = 10;
    }
    int main() {
        int sum = 100;
      
        return 0;
    }
    void fun() {
            int a = 6;
            int sum = 10;
    }
    int main() {
        int sum = 100;
        a = sum + 6;//不能编译通过,这个时候a是未定义的,因为在该函数内未声明,而在他上面的函数中声明

        return 0;
    }

    int main() {
        int x = 100;
        int sum = 10;
        {
            int z = 10;
            z = 100;
        }
        x = z + sum;//编译不能通过,因为z是在上面的块中定义的,出了这个块就不起作用了
        
        return 0;
    }
    //不能编译通过,因为在相同作用域内不可以使变量同名
    int g_max = 10;
    int main() {
    
        return 0;
    }
    int g_max = 100;