变量的生存期和作用域是个很基础但又很重要的问题,所以我打算写几百字重温一下。

变量的生存期是指变量在什么时间段存在。

变量的作用域是指变量在哪些代码块中能够被访问。

一般来说变量生存期包含作用域。即在变量起作用的代码段,这时变量已经分配了存储空间。

也就是说,变量可能已经分配存储空间,但它不能被访问。

在程序加载到内存中时,有些变量就已经分配存储空间,并且这个存储空间直到整个程序执行完毕,从内存中退出时才会被释放。

这些变量的生存周期就为整个程序的生存周期。如 全局变量和静态局部变量。它们的差别是全部变量的作用域一般为定义处到它所在文件结束。

要在全局变量定义位置之前或其他源文件中引用该全局变量,需要用extern来扩展该全局变量的作用域。

程序中有的变量在程序加载到内存中时并不分配存储空间,而是到定义它的函数被调用执行时才会临时分配存储空间,并且一旦该函数执行完毕返回到被调用处,这些变量的存储空间会被回收。

如 非静态局部或自动变量。

一个局部变量,如果没有用static修饰则自动为auto,即这种情况下生存期为函数调用到函数返回这个时间段。

对于非静态局部变量,生存期和作用域都为其所在定义的函数

对于静态局部变量,它的生存期是整个程序生命周期,但作用域依旧为定义它的函数内部

全局变量与静态局部变量如果未初始化,值为0

非静态局部变量未初始化,值不定。

1. 一般情况下全局变量定义函数外,局部变量定义函数内;全局变量作用范围是全局,局部变量作用范围在函数内;

2. 静态变量定义在函数外,则为静态全局变量,作用范围为当前文件;定义在函数内,则为局部静态变量,作用范围同局部变量;

3. 如果在全局范围要经常用到某个值,则设置为静态变量,否则定义为普通全局变量即可;

4. c、c++和java可以定义静态变量,go和python不能定义静态变量;

python变量作用域和生存期_变量的生存期和作用域相关推荐

  1. Python中单个下划线“ _”变量的用途是什么?

    这段代码中_ after for的含义是什么? if tbh.bag:n = 0for _ in tbh.bag.atom_set():n += 1 #1楼 下划线_在Python中被视为" ...

  2. Python中单个下划线“_”变量的目的是什么?

    在Python中,下划线_被视为" 我不关心 "或" 丢失 "变量 python解释器将最后一个表达式值存储到名为的特殊变量中_. >>> 1 ...

  3. python自动翻译导学案_变量python学案

    ●掌握常用的关系和逻辑运算符 ●掌握 Python 中的变量及其赋值 ●数字化学习与...●学生任务二: 阅读学案,计算一下表达式的值,把结果填在学习网站上. 练习算术...... 初中八年级信息技术 ...

  4. 符号常量和变量有什么区别_“变量”和“常量”,计算机程序中的那个“量”是什么“量”...

    石头这个学期上了一门大一的"C语言"课程,这是石头第二次上这门课了,我决定把这门课中学生比较容易混淆的.不好理解的概念用文章的形式记录下来. 无论是什么量,最终归为0 1 01 变 ...

  5. Python基本语法_变量作用域LEGB

    目录 目录 软件系统 变量的作用域 高级语言对数据类型的使用过程 作用域的产生 作用域的类型 Llocal局部作用域 Eenclosing嵌套作用域 Gglobal全局作用域 Bbuilt-in内置作 ...

  6. Python变量作用域的规则以及如何搜索内置作用域

    喜欢编程,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远!有不懂的问题可以私聊我哦! **作用域:**是指变量的生效范围,例如本地变量.全局变量描述的就是不同的生效范围 ...

  7. python变量按其作用域可分为_python变量的作用域一

    #6.2变量的作用域,是变量的可访问范围,也称为命名空间.在第一次 #给变量赋值时,python创建变量.第一次给变量赋值的位置决定了变量的作用域. #作用域类型 #一个程序通常包含了变量.函数和其他 ...

  8. python变量下划线开头_一日一技:python中下划线在不同位置的作用

    在Python的变量名和方法名中,单下划线和双下划线都有各自的含义,有的仅仅是作为约定,用于提示开发人员,而有的则对Python解释器有特殊含义. 你可能有些疑惑,在Python中变量名和方法名中的单 ...

  9. python 变量类型注释_变量类型、命名规则及代码注释

    人类在纸上可以写数字,也可以写文字,用数字来计算,用文字来说话,在人类的意识里你写的东西代表不同的含义!同样,在程序里面我们也按照人的习惯来设计,因此就有了变量类型这种说法!任何语言都会涉及到变量类型 ...

最新文章

  1. pom.xml中spring-boot-starter-test包的使用
  2. ASP-JSP-NET 清空IE缓存
  3. linux shell脚本 wget,bash – 在shell脚本中运行wget和其他命令
  4. leetcode 223. Rectangle Area | 223. 矩形面积(Java)
  5. 修改date格式 java_如何用Java更改日期格式?
  6. 成功的秘诀是什么_学习编码的10个成功秘诀
  7. python性能测试模块_技巧python模块性能测试-阿里云开发者社区
  8. 解决Windows 10下MySQL 5.7中文乱码问题
  9. ZOJ3826 Hierarchical Notation(14牡丹江 H) 树套树
  10. 米家扫地机器人重置网络_谁家扫地机器人悄声打扫更干净,科沃斯DEEBOT N3对比米家1S...
  11. 完善征信+垂直创新 助力有融网“剩者为王”
  12. SGX Enable
  13. 苹果手机怎么保存ins上的图片到本地
  14. 计算机 就业率低,大学里“最坑人”的4个专业,热门只是假象,实则就业率很低...
  15. 机器学习算法基础20210504-0529
  16. Py之h5py:Python库之h5py库的简介、安装、使用方法详细攻略
  17. oppo手机计算机的隐藏功能介绍,OPPO手机6大隐藏功能,你知道吗
  18. linux让前台程序脱离终端运行
  19. android_基础_Edittext的setSelection属性
  20. 公用IPv6 IPv4 DNS

热门文章

  1. Spectacle源码及分析2 —— Main.cpp解析1
  2. Exchange信箱迁移(只适用于DC和exh不在同一服务器上
  3. seaborn小提琴图绘制,以及四分位和95%置信区间数据的标示。
  4. 无法安装VMware Tools或显示灰色问题
  5. Flink学习:Flink常见报错
  6. 用js求解一元二次方程的根,实根与虚根
  7. AnyDesk远程连接及异常处理
  8. STM32对接涂鸦wifi模块项目记录(智能插座完善版本)
  9. 使用Docker+Jenkins+Pipeline将Vue项目部署到Nginx服务器
  10. 软件项目与汽车——汽车性能评价指标