c语言的静态变量理解 与 程序的5大存储区 与c语言的静态数组存放的位置

  • 程序的五大存储区:

     在一个程序中,划分为全局与静态存储区,代码区,堆,栈,常量存储区。

  1. 全局与静态存储区:存储的是全局变量或者是静态变量,它的所分配空间较小,大约只有1-2M。
  2. 代码区:存放的是程序的本身。
  3. 堆:程序员使用new获得的内存区域。
  4. 栈:存放局部变量或者函数的参数等数据方便恢复现场,还有静态数组。
  5. 常量存储区:存放的是常亮,一般不可以修改。
  • c语言对静态变量的理解:
  1. 隐藏与隔离:

全局变量虽然属于静态存储方式,但并不是静态变量。全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,全局变量在各个源文件中都是有效的。

如果我们希望全局变量仅限于在本源文件中使用,在其他源文件中不能引用,也就是说限制其作用域只在定义该变量的源文件内有效,而在同一源程序的其他源文件中不能使用。这时,就可以通过在全局变量之前加上关键字 static 来实现,使全局变量被定义成为一个静态全局变量。这样就可以避免在其他源文件中引起的错误。也就起到了对其他源文件进行隐藏与隔离错误的作用,有利于模块化程序设计。

     2.保持一个变量不被释放:

在函数中只有被生命为static的变量才不会在函数结束后被取消,它的值一直存在,下次调用函数时仍可以使用上次使用过的值。另外一般被声明为静态变量时会清除其内存空间以0覆盖。

  • c语言的静态数组存放的位置
#include<stdio.h>
int a[2];//存放在栈空间;
static char* b[1];//存放在静态存储区

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值