关于C语言中定义static变量的解释

本文详细介绍了C语言中static关键字的用法,包括static修饰的全局变量、局部变量和函数。static使得变量在程序执行期间保持持久状态,并限制其作用域。全局静态变量仅在声明它的文件中可见,局部静态变量在函数结束时不被销毁,静态函数则限制了其可见性,提高了代码的封装性。
摘要由CSDN通过智能技术生成

       在C语言中static类型的变量的意思其实和它的本意差不多,表示“静态”或者“全局”的意思,用来修饰变量和函数。经static修饰过后的变量或者函数的作用域或者存储域会发生变化,而由static修饰的变量在初始值方面也会表现出static关键字的优势。

C语言中程序的内存分布:

    1)正文段 —— CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;

    2)初始化数据段(数据段)—— 在程序中所有赋了初值的全局变量,存放在这里。

    3)非初始化数据段(bss段)—— 在程序中没有初始化的全局变量;内核将此段初始化为0。

    4)栈 —— 增长方向:自顶向下增长;自动变量以及每次函数调用时所需要保存的信息(返回地址;环境信息)。

 5)堆 —— 动态存储区。是向高地址扩展的数据类型,是自下向上的扩展方式。

(此图来源于网络)

static修饰的全局变量

  在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。

      1)内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在)

      2)初始化:未经初始化的全局静态变量会被程序自

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值