变量分类及其特点

普通全局变量

   1.生命周期:程序开始运行是创建,程序结束时才销毁

   2.作用域:定义开始直到本源文件结束,(不安全)普通全局变量的作用域是整个源程序,当一个源程序由多个原文件组成             时,普通的全局变量在各个源文件中都是有效的。如果想在别的文件中访问可以加上extern声明                      https://www.cnblogs.com/mch0dm1n/p/5727667.html(extern知识??)

   3.默认值:为0

   4.连接属性:外部

   5.内存区域:全局区

静态全局变量

     static全局变量初始化语句只执行一次一次

   1.生命周期:程序开始运行是创建,程序结束时才销毁

   2.作用域:定义开始直到本文件结束,(不安全)而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在         同一源程序的其它源文件中不能使用它。静态全局变量就是用来解决重名问题的

   3.默认值:为0

   4.连接属性:内部

   5.内存区域:全局区

普通局部变量

   1.生命周期:进入函数时创建,函数结束时销毁

   2.作用域:本函数内有效

   3.默认值:随机值

   4.连接属性:无

   5.内存区域:栈

静态局部变量

   1.生命周期:进入函数时创建,函数结束时销毁

   2.作用域:不死  ??

   3.默认值:为0

   4.连接属性:无

   5.内存区域:全局区

动态内存

   1.生命周期:通过malloc函数创建,free释放

   2.作用域:能获得就能用

   3.默认值:随机

   4.连接属性:无

   5.内存区域:堆

普通函数

   1.生命周期:

   2.作用域:对于可在当前源文件以外使用的函数应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件。

   3.默认值:无

   4.连接属性:无

   5.内存区域:代码段

静态函数

   1.生命周期:

   2.作用域:只在当前源文件中使用的函数

   3.默认值:无

   4.连接属性:无

   5.内存区域:代码段

static函数与普通函数最主要区别是static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝程序的局部变量存在于(栈)中

 

对于一个完整的程序:内存分布有如下几个区、栈区、堆区、全局区、常量区、代码区。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值