static和全局变量和局部变量的问题

在c语言中,static有好几种作用,下面介绍:

1.隐藏的作用

比如说我们在一个源代码文件中定义了一个整型变量a(全局变量)。那么在整个项目中a都是可见的,如果在其前面加上static,那么a此时变成了一个静态的全局变量,此时a只能被本源代码文件中引用,对其他代码文件是隐藏的,对于函数来说static也具有隐藏的作用。

2.变量持久化的作用

static修饰的变量全部存储在静态数据区,在静态数据区的变量在一开始就会被初始化,并且只能被初始化一次。全局变量也是如此,只不过被static修饰的全局变量相对于其他文件的代码来说被隐藏了而已。

3.默认初始化0

static可以默认初始化为0.另外全局变量也可以默认初始化为0.在静态数据区,字节的默认值全部是0X00。


附:static修饰的全局变量和普通的全局变量都是静态存储方式,但是static修饰的全局变量改变了它的作用域;

static修饰的局部变量和普通的局部变量,前者改变了变量的生存周期,static修饰局部变量只被初始化一次,这次沿用上次的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值