C语言----变量生存期(高阶篇三十八)

  变量的生老病死

公司主营业务:成都网站制作、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出达日免费做网站回馈大家。

    所有变量都占着内存,变量什么时候开始占着内存,什么时候从内存中消失,这叫做变量的生存周期。

      按照变量的生存周期分类有:

        ※自动变量auto

        ※静态变量static

        ※寄存器变量register

        ※外部变量extern

        ※函数也有外部函数extern和静态函数static两种

  变量作用域

    有时候变量还未消亡,你却不能使用它,这就是变量作用域在作怪。

    按照变量作用域分局部变量和全局变量。它们没有什么关键字修饰,只是看你在什么部位定义变量。

    从变量生存期和作用域来分析几种不同种类变量的特性。

  局部变量

    定义局部变量的关键字为auto,也叫自动变量。

    C语言规定自动变量在定义时前面的auto可以省略。

      如:int a; 等价于 auto int a;

  全局变量

    在函数外面定义的变量都是全局变量,不管它用什么关键字修饰。

    全局变量的特点:

      ※全局变量的生存期和作用域在从它的定义点开始,一直到本文件的程序结束前,都是有效的,程序结束后消亡,释放内存。

      ※全局变量作用域中的所有函数将共享这个全局变量中的内存数据,各函数之间也可以通过全局变量传送数据,但在职业程序员中,这是种很不好的习惯。

    注意:在同一作用域中,如果局部变量与全局变量重名,全局变量将暂时退居幕后,这时只能操作局部变量。

    程序1

      局部变量和全局变量

// 38-1变量生存期.c

#include

int a = 1, b = 2;     //全局变量

void fun(int c,int d)
{
int a = 3, b = 4;    //局部变量与全局变量重名,隐藏全局变量
    auto int e = 5;      //自动局部变量  int e = 5; 相等
    int f = 6;    //局部变量
    printf("在fun函数中使用局部变量:c = %d\n", c);
    printf("在fun函数中使用局部变量:e = %d\n", e);
    printf("在fun函数中使用全局变量:a = %d\n", a);


}


int g = 10, h = 11;   //全局变量
main()
{
int i = 12, j = 13;  //局部变量
    fun(i, h);
    printf("在main函数中使用全局变量:a = %d\n", a);
    printf("在main函数中使用全局变量:g = %d\n", g);

}

文章标题:C语言----变量生存期(高阶篇三十八)
分享链接:http://pwwzsj.com/article/dsoipsj.html