C语言day10-01全局变量和局部变量-基本概念

作者: liyuhong165 | 来源:发表于2016-05-07 03:01 被阅读155次

    pragma mark 全局变量和局部变量-基本概念

    pragma mark 概念

    /**
     *  
     static 和 extern
     局部变量存储在栈中,当作用域结束 系统会自动释放栈中的局部变量
     全局变量存储在静态区中,他会随着程序的启动而创建,随着程序的结束而结束
    
     */
    

    pragma mark 代码

    #include <stdio.h>
    //void text(int v1);
    void text();
    #pragma mark 局部变量
    /**
     局部变量
     概念 : 局部变量就是定义在函数,代码块和函数形参列表中的变量,我们就称之为局部变量
     作用范围: 从定义的那一行开始 一直知道遇到大括号结束或者遇到return为止
     特点: 相同作用域范围内不能出现同名的局部变量
        相同作用域范围内 不能出现同名的局部变量
        不同作用域欧范围内出 同名的局部变量,内部的局部变量会覆盖外部的局部变量
     注意:
        局部变量没有固定的初始化值,如果没有对局部变量进行初始化,那么局部变量中是一些随机的值,
        所以在开发中 千万不要使用未初始化的局部变量
     存储位置:
        局部变量存储在栈中,当作用域结束 系统会自动释放栈中的局部变量
     */
    #pragma mark 全局变量
    /**
     全局变量
     概念 : 写在函数,代码块,形参列表外 的变量,我们就称之为 全局变量
     作用范围 : 从定义的那一行开始 一直 直到文件末尾{暂时这样认为}
     特点 : 
        全局变量 和 局部变量可以同名
        如果存在和全局变量同名的局部变量, 那么局部变量会 覆盖 全局变量
     注意: 
        全局变量 如果没有进行初始化, 那么系统默认 会将全局变量初始化为0
     存储位置:
        全局变量存储在静态区中,他会随着程序的启动而创建,随着程序的结束而结束
     */
    
    int num;    // 全局变量   num = 0;
    int main()
    {
    #warning 局部变量
        /*
        int num = 10;
        {
    //        int a = 55;
            int num = 55;
            printf("num %i\n",num);
    
        }
    //    a = 100;
    //    int num = 20;
        int b;
        printf("b = %i\n",b);
         */
    #warning 全局变量
        /*
        int num;// 局部变量
        num = 10;    // 访问的是局部变量的num
        printf("num = %i\n",num);   // 10
        text();
        printf("num = %i\n",num);
         */
        text();
        text();
        return 0;
    }
    //int num;    // 全局变量
    void text()
    {
    //    printf("num = %i\n",num);
    //    num = 998;  // 访问的是全局变量
        num++;  // 1, 2
        printf("num = %i\n",num);
    }
    
    //void text(int v1)
    //{
    ////    printf("num %\n",num);
    ////    int v1 = 22;
    //}
    
    
    
    

    相关文章

      网友评论

        本文标题:C语言day10-01全局变量和局部变量-基本概念

        本文链接:https://www.haomeiwen.com/subject/fnwjrttx.html