c++之说_5|变量作用域

在编程语言中,所有定义的变量都有作用域。

作用域是什么东西呢?

作用域:

变量合法存在且可合法使用的区域;

超过区域,变量就不可使用了,内存被释放掉了;

一天,你们依然在愉快的玩着九宫格游戏,但是你发现了一个问题,随着你写的指令纸条越来越多

你发现,白虎在九宫格的空白区域,不断的代表你所写的变量的格子。

这本没有任何问题,游戏越来越久的运行,九宫格的格子被白虎写得越来越往后,前面很多用不到的变量所代表的格子,似乎一直被荒废在哪里

而且九宫格再大 始终是有限的 于是你在考虑把之前用不上的变量所代表的格子利用起来

新的规则出现了

存写变量的内存  分为几个区域

全局区  栈区  堆区  (静态区,就是全局区划出来的) 还有一个只读存储区( 顾名思义只读存储区 存储的变量是只读的  是不可以写入的  这个比较特殊  一般可以忽略)

全局区:

从一次游戏开始的时候,到游戏结束都合法存在的区域(全游戏过程中都可以使用  该区域划分代表变量的内存)

栈区:

这个是最可以看出作用域的感觉  该区域变量的内存有效 是在  {   }  (两个左右大括号之间 ) 超出大括号就不可合法使用的内存  

堆区:

是一片可以由你自由定义的一片内存,你可以指定,该区域的内存不可使用的时候   该区域的内存从你定义使用时  到你自己释放该内存之前  都可以访问使用 

静态区

是一种你在指令流中,在{}之间静态修饰定义的变量  该变量所代表的内存  从声明起,到游戏结束之前都可合法使用 

全局区  变量如何定义  

很简单  在 {}  大括号外定义的变量都是存放在全局区

注意  变量有效范围 游戏启动到结束之前有效

栈区  变量定义在 {}  大括号内定义的变量都是存放在栈区 

注意  变量有效氛范围从定义开始到  } 右大括号  超出失效

堆区  这个是你可以自己定义使用该区域内的内存的大小 使用方式是  使用内存地址  这片区域不是用变量定义别名  

注意  内存有效范围 从你定义使用该区域一片或一个内存开始  到  你决定释放这片内存之前都可以使用

内存失效

所谓失效  就是白虎 认为这些失效的内存  变成未使用的内存  之后指令中新定义的变量  白虎考虑从这些未使用的内存中寻找代表内存的大小

简单来说  失效就是变成未使用  可以重新被新变量所使用的内存

变量内存的作用域很重要  

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值