C语言中变量的生存期及作用域介绍
2015-03-06 09:08
141 查看
c 语言中变量的初始化及生存期、作用域浅谈
生存期和作用域相关的关键字extern,static,auto,register变量的初始化相关问题
关键字介绍
externextern 可以作用于变量,函数。所谓的外部变量是指定义在所有函数之外的变量。一般有两种,一种是定义在同一文件中,另一种是定义在别的文件中。同一个文件中的所有函数可以使用该文件中定义的外部变量而不要求必须用extern进行声明。函数如果想使用定义在不同文件中的变量,则必须利用extern关键字进行声明。extern就相当于一个引用声明。extern 作用于函数时类似。
详细说明参见[]http://blog.chinaunix.net/uid-22391661-id-1774382.html].
static
static 是一个神奇的关键词,因为其用法实在太繁杂。主要应用场景包括:作用于外部变量,作用于内部变量,作用于函数。作用于外部变量和函数的时候,作用和extern相反,表明外部文件无法使用该变量或函数。作用于内部变量时,对该变量在静态区进行一次内存分配,后面再次调用函数的时候,不用再次分配。
详细说明参见[]http://www.cnblogs.com/stoneJin/archive/2011/09/21/2183313.html]
auto and register
auto用来声明变量是自动的,也就是在运行的时候分配内存。一般在函数中定义的变量都是auto类型的。register指寄存器变量,不太常用。
变量初始化问题
全局变量和静态变量在进行初始化的时候全部清零。局部变量如果未初始化,分配的值一般为0xcccccccc。但是通过在vs中的测试,发现字符数组初始化都为0,可能是编译器相关吧。
堆栈中分配的变量,一般系统默认为0.
相关文章推荐
- 7、变量的生存期和作用域
- 一:PHP语言基础_PHP变量_声明变量和作用域
- C 语言-static和extern关键字2-对变量的作用
- OC语言——点语法和成员变量的4种作用域及property和synthesize的使用
- 指针,变量的生存期及作用范围,良好的动态内存申请和释放习惯
- c89 中的变量生存期,作用域,存储位置总结
- 变量及函数的生存期、作用范围、链接属性
- 黑马程序员—Java语言基础(人机交互方式、Java语言介绍、环境变量配置、Hello World程序编写)
- C程序设计语言 chapter1 1.10 变量和作用域
- Varnish的配置语言vcl及其内置变量介绍
- 一:PHP语言基础_PHP变量_声明变量和作用域
- C++中变量生存期,作用域,存储位置总结
- 函数中变量的生存期和作用域
- static(c中定义的关键字1、被其修饰者 外部无法使用(相反的都可以使用extern在外部使用) 2、函数局部变量使用成为静态的放入静态池-生存期改变。c++进行了扩充,使它在类中有了特殊作用)
- 第一部分 基本语言 第二章 变量和基本类型(2.3.6名字的作用域)(2.3.7在变量的使用处定义变量)
- 一:PHP语言基础_PHP变量_声明变量和作用域
- 函数中变量的生存期和作用域
- C 语言中的变量介绍
- C语言基础:C语言static和extern(2) - 作用与变量
- c 语言变量的全程生存期和动态生存期的体现