C语言----变量生存期(高阶篇三十八)
变量的生老病死
公司主营业务:成都网站制作、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出达日免费做网站回馈大家。
所有变量都占着内存,变量什么时候开始占着内存,什么时候从内存中消失,这叫做变量的生存周期。
按照变量的生存周期分类有:
※自动变量auto
※静态变量static
※寄存器变量register
※外部变量extern
※函数也有外部函数extern和静态函数static两种
变量作用域
有时候变量还未消亡,你却不能使用它,这就是变量作用域在作怪。
按照变量作用域分局部变量和全局变量。它们没有什么关键字修饰,只是看你在什么部位定义变量。
从变量生存期和作用域来分析几种不同种类变量的特性。
局部变量
定义局部变量的关键字为auto,也叫自动变量。
C语言规定自动变量在定义时前面的auto可以省略。
如:int a; 等价于 auto int a;
全局变量
在函数外面定义的变量都是全局变量,不管它用什么关键字修饰。
全局变量的特点:
※全局变量的生存期和作用域在从它的定义点开始,一直到本文件的程序结束前,都是有效的,程序结束后消亡,释放内存。
※全局变量作用域中的所有函数将共享这个全局变量中的内存数据,各函数之间也可以通过全局变量传送数据,但在职业程序员中,这是种很不好的习惯。
注意:在同一作用域中,如果局部变量与全局变量重名,全局变量将暂时退居幕后,这时只能操作局部变量。
程序1
局部变量和全局变量
// 38-1变量生存期.c #includeint 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://ybzwz.com/article/dsoipsj.html