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

c语言变量存储方式

2013-11-11 23:28 218 查看
c语言变量存储方式

动态存储方式(使用时动态分配存储空间,使用结束后释放)

1.auto变量:

c语言规定,函数内未加说明的变量视为自动变量,可以省去说明符auto。

auto变量特点:

作用域仅限模块内,该模块结束释放存储单元;不赋初值,其值不确定

2.register类型变量

静态存储方式(编译时分配存储空间知道程序运行结束)

1.static类型变量:

静态局部变量:函数内定义,生存期为整个程序运行期间,但作用域与自动变量相同,只能在函数内访问,退出函数后无法直接访问

static局部变量特点:

未赋初值,系统自动赋0;第二次进入该函数,次变量保留上次调用的值

静态全局变量:

全局变量的介绍在最后面

在全局变量前加static就是静态全局变量,全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。

静态全局变量和全局变量的区别:

非静态全局变量的作用域是整个源程序,即在各个源文件有效。而静态全局变量的只在该变量的源文件有效,其他源文件不能访问。由于静态全局变量作用域仅限一个源文件内,只能被该源文件的函数使用。避免了其他源文件引用引起的错误

2.extern类型变量

全局变量:

全局变量的定义是指所有函数之外,只能定义一次,形式为

[extern] 类型说明 变量名,, 如extern int a,其中extern可以省略

全局变量声明,在使用该变量的各个函数内,在整个程序内可以出现多次,形式为:

extern 类型说明 变量名,

全局变量定义和声明的区别:

定义是就分配了内存单元,可以初始化,但声明时不能再赋初始化值,只表明在函数内使用外部变量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: