C语言之Static三大作用之一——修饰局部变量

Static修饰的局部变量,即为内存静态区的局部变量,何为内存?针对初学者而言,内存主要有三大区域构成,分别是栈区、堆区、静态区。栈区主要是存放临时属性的变量,如局部变量(普通的 未被修饰的)、函数的形式参数。我们知道所有编译时候或者是你想要在电脑上面运行程序相关的,基本上要在内存上开辟空间,堆区主要是动态内存管理,包括malloc、free、calloc、realloc...静态区包括存放静态变量和全局变量(生命周期较长)。

栈区特点:存放临时属性的变量 生命周期较短(进入函数开创内存空间,出函数销毁并释放内存空间);

堆区特点:动态内存管理;

静态区特点:变量的生命周期会变长,但是作用域不会改变,和原来保持一致。

static修饰之后的变量i 会存放在内存的静态区,生命周期会变长和全局变量的生命周期类似,但是作用域不会改变,保持原来。

回顾一下:main函数是程序的入口,程序自上而下进行读取执行命令,涉及调用函数,注意其作用于和生命周期的具体发生情形,未被修饰的局部变量在栈区,进入test函数是被创建,出去就会立刻被销毁,生命周期短暂,生命周期和作用域 作用时间紧密相连;若是被static修饰之后,局部变量i变成静态变量i 存放于静态区,作用时间(生命周期)变长,但并未改变其所用域。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值