关于变量作用域(内部、外部)及存储类型(auto、static、register)的总结

可见性就是在在什么地方可以调用,能调用的地方就是可见,而存在性,就是在什么地方什么时候初始化,然后使用完后在什么地方什么时候释放,存在性一般是在运行时的生命周期内起作用的,这个题目里除了static其他都是在函数结束时自动释放了。

     一、变量的 作用域  存储类型

一个 C 程序( *.EXE )由若干个 C 文件( *.C )组成,一个( *.C )文件由若干个 C 函数组成。函数内、外均可(根据需要)定义或声明变量。

【 按作用域划分 】 内部变量 外部变量

内部变量 :在函数内定义变量称为内部变量(局部),若为自动存储类型,默认初始化值为不确定值,若为static类型则为0或空字符;

外部变量: 在函数外定义变量称为外部变量(全局),默认初始化值为0或空字符;

二者区别 定义出现的位置

【 按存储类型划分 】 auto、static/register(动态、静态/寄存器变量)

变量 定义 一般 格式 : [ 存储类 型 ] 数据类型 变量表

auto :动态:( 存储类 型 缺省时,系统默认为动态;)

      位置:动态区

特点: 程序运行时动态分配,每次调用时都重新赋初值,调用不赋初值时,其值不确定。

static :静态:

       位置:静态区

特点: 程序编译时静态分配,每次调用时不再重新赋初值,保留最后一次调用的值。

二者区别 存储位置不同,

register :寄存器:

位置:在CPU内;

特点:速度快;

补充说明: 一般不用认为进行 存储类 型声明,系统编译时,根据需要自动声明 register 类型)

二、Static:用于变量和函数时的不同意义

1. Static:用于变量时,共性是:静态存储

  (1) 用于外部变量:代表是本*.C文件内私有变量,且静态存储

               其他*.C(即使用extern声明也)不能调用

  (2)用于内部变量:代表是本函数内私有变量,且静态存储

2. Static:用于函数时,代表是本*。C文件私有函数,其他*。C(即使用extern声明也)不能调用

  Static:用于外部变量或函数时,代表作用域;用于内部变量时,代表生存周期

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值