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

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语言