C语言特性(局部变量和全局变量)
来源:互联网 发布:淘宝赠运费险什么意思 编辑:程序博客网 时间:2024/05/14 06:52
局部变量和全局变量
局部变量
局部变量根据定义形式的不同,又分为如下三种。
1.形参:在定义函数签名时定义的变量,形参的作用域实在整个函数内有效。2.函数局部变量:在函数体内定义的局部变量,它的作用域是从定义该变量到函数结束。3.代码块局部变量:在代码块中定义的局部变量,这个局部变量的作用域是从定义到该代码块结束。
全局变量
在一个函数内部,如果全局变量和局部变量同名,那么局部变量将会覆盖全局变量,意味着在该函数内部,全局变量会失效。
如果在源程序的结尾部分定义全局变量,又希望在前面的各函数中使用的这些全局变量,这就需要在这些函数中声明全局变量。声明全局变量使用extern关键字,语法格式如下: extern 类型 全局变量名;
外部全局变量与内部全局变量
事实上,C语言允许访问其他源程序中定义的全局变量,允许被其他源程序访问的全局变量被称为外部全局变量。 如果希望全局变量的作用域限制在该源程序内部,则可使用static修饰该全局变量,这样就可以避免其他源程序访问或修改该全局变量。这样的全局变量被称为内部全局变量。
动态存储与静态存储
动态存储:程序在运行期间根据需要动态分配内存的存储方式。
静态存储:程序在运行开始就分配固定内存的存储方式。
静态存储区会存放如下两类变量1.全局变量:无论是内部全局变量,还是外部全局变量,他们都被保存在静态存储区内。2.static修饰的局部变量。动态存储区主要存放如下三类变量1.函数的形参变量。2.非static修饰的局部变量。3.函数执行的现场数据以及返回地址等。
为了指定变量的存储类别,可以在定义变量时指定存储类别。C语言支持如下几种存储类别
auto:指定该变量采用自动存储机制。局部变量默认采用这种存储机制。static:指定将局部变量存放到静态存储区。这样该变量所占用的空间将会一直保存,知道程序退出。register:指定将该变量存放到寄存器内。extern:用于声明外部变量。
0 0
- C语言特性(局部变量和全局变量)
- c语言全局变量和局部变量
- C语言的全局变量和局部变量
- c语言全局变量和局部变量
- c语言全局变量和局部变量
- C语言局部变量和全局变量
- C语言之局部变量和全局变量
- c语言中全局变量和局部变量
- C语言局部变量和全局变量
- C语言局部变量和全局变量
- C语言局部变量和全局变量
- C语言局部变量和全局变量
- c语言全局变量和局部变量
- C语言-全局变量和局部变量
- C语言局部变量和全局变量
- C语言 全局变量和局部变量
- C语言局部变量和全局变量
- C语言全局变量和局部变量总结
- C#修改数组
- 【LEETCODE】38-Count and Say
- Unity3d碰撞检测中碰撞器与触发器的区别
- C语言特性(函数)
- RMAN实战13:和12C相关的恢复
- C语言特性(局部变量和全局变量)
- 自定义RecyclerView实现上拉加载
- 2734: [HNOI2012]集合选数
- C语言特性(预处理)
- nodejs eventEmitter源码解读
- 简单的MapReduce程序(Hadoop2.2.0)
- C语言特性(指针)
- 嵌入式audio基础(二)传输协议
- C语言特性(指针与数组)