稍稍看了会C++ Primer,然后把书中讲这部分的内容精简下。
先给大家说下自动变量,这个是在函数中用的,我个人认为是比较多的一中变量。自动变量的修饰符是(auto),但一般情况下我们忽略它,它是在代码块中被创建,当代码块结束就消失的一种变量。它是存放在堆栈中,所以可想而知,当堆栈结束后,变量也不在了。
接下来讲下自动变量中的寄存器变量,上面说了,变量放在堆栈中,所以会消耗内存,而寄存器变量则解决了这个问题,它需要在自动变量声明前加上一个“register”,这样编辑器就会去使用寄存器来处理变量。但记住一点,由于寄存器上没有地址,所以,对寄存器变量不能使用取地址符号。
接下来说一下静态变量。这个是我个人感觉很头疼的一种变量。
首先,静态存储持续性有三种链接性,1.外部链接性,2.内部链接性,3.无连接性。
下面上一张表格,里面介绍了五种存储方式。
存储描述 | 持续性 | 作用域 | 链接性 | 如何声明 |
自动 | 自动 | 代码块 | 无 | 在代码块中,(auto) |
寄存器 | 自动 | 代码块 | 无 | 在代码块中,用register |
静态,无连接性 | 静态 | 代码块 | 无 | 在代码块中,用static |
静态,外部链接性 | 静态 | 文件 | 外部 | 在函数外面 |
静态,内部链接性 | 静态 | 文件 | 内部 | 在函数外面,使用关键字static |
我先贴这些上来,相信大家也都能看懂些,时间不早了,先睡觉去,明天晚上下班后,接着补充,到时候给大家上几段代码,然后介绍下命名空间,其实也是一种作用域。嘿嘿,先挖个坑在这,明天来填坑,啊不对。。12点了,是今天晚上。。。