ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

各种类型变量的生存期和作用域

2021-02-02 23:32:37  阅读:255  来源: 互联网

标签:文件 定义 各种类型 作用域 局部变量 静态 生存期 全局变量


局部变量:

  {}内定义的

全局变量

  函数、类外定义的 

静态变量:

  生存期和程序一样长,存储在全局/静态存储区。

 

普通局部变量:

  定义在{}内的是局部变量,其存储在栈中,作用域在{}内,出了{}的范围会被自动释放掉,普通局部变量不初始化,默认值为随机数。

普通全局变量:

  定义在{}外的,其定义在全局/静态存储区,其生存期和程序的一样长。全局变量只定义一次,在本文件中定义,在其他文件中可以采用 extern + 定义变量的形式进行声明,然后进行调用。extern关键词的作用和用法:https://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html

静态局部变量:

  用static修饰的局部变量,作用域仍在{}中,但是生存期变长,变为和程序的生存期一样长。

静态全局变量:

  用static修饰的全局变量,作用域本文件中,生存期和程序的一样长。

静态全局变量是否可以在不同的文件使用同一个名字定义?

  不可以。普通全局变量,在两个文件中使用了同一个名字进行定义,可以进行正常编译,但会出现链接错误,原因是有两个地方存在相同的变量,导致编译器无法识别应该使用哪一个。

静态局部变量是否可以在不同的文件使用同一名字定义?

  可以。静态全局变量,在编译的时候编译器会将其进行重命名,其他文件就不会使用这个文件的static变量了,这样就使得只在本文件中有效。如果是全局的话,就全局可见,共享同一块内存空间。

  参考:https://zhidao.baidu.com/question/572940072.html

  

标签:文件,定义,各种类型,作用域,局部变量,静态,生存期,全局变量
来源: https://www.cnblogs.com/HansanF/p/14363747.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有