您的位置:首页 > 编程语言 > C语言/C++

C语言中存储类型和Static关键字

2015-06-25 17:55 211 查看
变量的存储类型是指存储变量值的内存类型。变量的存储类型决定变量何时创建、何时销毁以及它的值将保持多久。有三个地方可以用于存储变量:普通内存、运行时内存、运行时堆栈、硬件寄存器。

静态变量:凡是在任何代码块之外声明的变量总是存储于静态内存中,也就是不属于堆栈的内存。

自动变量:在代码块内部声明的变量缺省存储类型是自动的,它存储于堆栈中。如果给它加上static关键字,可以使它的存储类型从自动变为静态,但是它并不修改该变量的作用域。

寄存器变量:关键字register可以用来自动变量的声明,提示它们应该存储于机器的硬件寄存器而不是内存中。

总结:当static关键字用于不同的上下文环境时,具有不同的意思。上一篇文章已经提到,当它用于代码块之外的变量声明时,或用于定义函数时,static关键字用于修改标识符的链接属性,从external改为internal,但标识符的存储类型和作用域不受影响。

当它用于代码块内部的声明时,static关键字用于修改变量的存储类型,从自动变量修改为静态变量,但变量的链接属性和作用域不受影响。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 内存