C语言-变量的类型
2017-05-24 15:11
176 查看
C语言-变量的类型
局部变量&全局变量
变量定义时有3种情况:1- 函数的开头——只在函数内部有效。
2- 复合语句内——只在复合语句内才能引用。
for(int i=0;i<10;i++) { ...//循环内容 }
3- 函数外部定义——外部变量/全局变量,能够被本文件的其他函数所公用。
C语言中,习惯上全局变量将第一个字母大写
float Max=0,Min=0; int main() { ... }
不在必要的时候,不要使用全局变量,全局变量有如下缺点;
耗内存
可移植性变差
降低程序的可读性
如果出现了全局变量和局部变量同名的情况下,在局部变量的作用范围内,全局变量会被屏蔽。
静态变量(static)&自动(auto)变量
按照变量的生存期(存在时间)来区分变量的话,可以分为静态变量和自动变量。内存中用户的存储空间使用情况是:
程序区
静态存储区
动态存储区
程序区存放程序
数据存放在静态存储区和动态存储区。全局变量均存放在静态存储区。局部变量中有使用static声明的变量是放在静态存储区的。其他的局部变量和形参放在动态存储区。
局部变量的存储类别:
- auto(若不额外声明均为auto类型,动态分配内存)
- static(函数调用结束后,该变量保持原值,下次调用不会初始化。且该变量不能被其他函数引用)
- register(将经常需要存取的局部变量存储在寄存器中,提高执行效率,现在计算机能够自动将使用频繁的数据放入寄存器中,所以无需指定)
全局变量的存储类别:
全局变量的作用域是从定义处到文件结尾。
如果想将作用于扩展为整个文件,需要在其他位置加上extern,起到扩展作用。
如果想将作用域扩展为其他文件,需要在其他文件中该变量定义处加上extern。
如果不想让该全局变量被其他文件使用,需要在前面加上static。
[1]: 《C语言程序设计》第四版 谭浩强
相关文章推荐
- 嵌入式系统开发人员C语言测试题--填空题(数据类型和变量)
- C语言不同类型变量与零值比较的规范写法
- 我也要学C语言-第三章:C程序的数据,数据类型还有变量
- C语言学习笔记(二)--数据类型、常量和变量简介
- C语言变量存储类型auto,static,extern,static extern,register
- 嵌入式系统开发人员C语言测试题--填空题(数据类型和变量)
- ARM体系中C语言变量类型总结
- C语言--变量存储类型
- C语言的数据类型→常量与变量
- 不同类型变量与零值的比较 【C语言规范】
- C语言中的变量类型
- c语言变量的存储类型
- C语言变量和数据类型练习2
- C语言学习总结 一 关于变量类型
- C语言变量存储类型auto,static,extern,static extern,register
- C语言编程艺术--C语言中enum变量类型的使用
- C语言变量和数据类型练习1
- C语言struct结构类型定义和结构变量说明
- C语言变量存储类型介绍
- C语言变量存储类型auto,static,extern,static extern,register .