C语言-变量的类型

C语言-变量的类型


局部变量&全局变量

变量定义时有3种情况:

1- 函数的开头——只在函数内部有效。
2- 复合语句内——只在复合语句内才能引用。

for(int i=0;i<10;i++)
{
    ...//循环内容
}

3- 函数外部定义——外部变量/全局变量,能够被本文件的其他函数所公用。

C语言中,习惯上全局变量将第一个字母大写

float Max=0,Min=0;
int main()
{
    ...
}

不在必要的时候,不要使用全局变量,全局变量有如下缺点;

  1. 耗内存
  2. 可移植性变差
  3. 降低程序的可读性

如果出现了全局变量和局部变量同名的情况下,在局部变量的作用范围内,全局变量会被屏蔽。

静态变量(static)&自动(auto)变量

按照变量的生存期(存在时间)来区分变量的话,可以分为静态变量和自动变量。

内存中用户的存储空间使用情况是:

  • 程序区
  • 静态存储区
  • 动态存储区

程序区存放程序
数据存放在静态存储区和动态存储区。全局变量均存放在静态存储区。局部变量中有使用static声明的变量是放在静态存储区的。其他的局部变量和形参放在动态存储区。

局部变量的存储类别:
- auto(若不额外声明均为auto类型,动态分配内存)
- static(函数调用结束后,该变量保持原值,下次调用不会初始化。且该变量不能被其他函数引用)
- register(将经常需要存取的局部变量存储在寄存器中,提高执行效率,现在计算机能够自动将使用频繁的数据放入寄存器中,所以无需指定)

全局变量的存储类别:
全局变量的作用域是从定义处到文件结尾。
如果想将作用于扩展为整个文件,需要在其他位置加上extern,起到扩展作用。
如果想将作用域扩展为其他文件,需要在其他文件中该变量定义处加上extern。
如果不想让该全局变量被其他文件使用,需要在前面加上static。


[1]: 《C语言程序设计》第四版 谭浩强

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值