变量作用域和生存期

C语言的变量按作用范围分为:局部变量、全局变量

局部变量作用域仅限于函数内,注意,形参变量是被调函数的局部变量,实参是属于主调函数的局部变量。

全局变量也称为外部变量,作用域是整个程序

全局变量的说明符为extern。在一个函数之前定义的全局变量,在该函数内使用时可不再加以说明。

优缺点分析:1.全局变量可加强函数模块之间的数据联系,但使函数的独立性降低

      2.全局变量在程序的全部执行过程中都占用存储单元

C语言的存储空间分为三部分:代码区、静态存储区、动态存储区。

变量的存储方式分为静态存储、动态存储

静态存储变量通常在编译时分定存储单元并一直保持不释放,直至整个程序结束。

动态存储变量使用它时才分配存储单元, 使用完立即释放。

变量存储类型:自动变量(局部变量)(auto)、寄存器变量(register)、外部变量(extern)、静态变量(static)

静态局部变量:static int a;

  1.在函数内定义,但不像自动变量调用时存在,退出消失,静态局部变量始终存在

  2.作用域与局部变量相同,即只能在函数内使用

  3.在编译时赋初值,且只赋值一次;而自动变量在函数调用时赋初值,每调用一次重赋值。若不赋初值,静态局部变量编译时自动赋初值0,局部变量是个不确定的值。

静态全局变量:作用域局限于一个文件,可避免在其他源文件中引起错误。

静态——局部:改变生存期

静态——全局:改变作用域,限制了使用范围

 内部函数:static int f(int a)

 外部函数:默认方式,在一个文件中调用其他文件中的外部函数时,extern int f(int a);外部函数声明(定义在其他文件中)

转载于:https://www.cnblogs.com/Xilian/p/3729153.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值