【C】C语言的作用域和生命周期与static关键词的关系

本文详细介绍了C语言中的static关键字,包括它如何影响局部变量的生命周期和存储位置,以及对全局变量和函数外部链接属性的影响。static可以使局部变量变为静态,延长其存在时间;对全局变量,它限制了其作用域;对于函数,static可使其成为内部链接,不可在其他源文件中调用。
摘要由CSDN通过智能技术生成

一、C语言的存储区

局部变量、静态变量与栈区、堆区、静态区的关系

在这里插入图片描述

二、static关键字

static在C语言中是关键字,static关键字在C语言中主要是用来修饰局部变量、全局变量、自定义函数。

三、static的具体用法

1.static修饰局部变量

  • static修饰局部变量,局部变量变成静态变量,从栈区变为静态区。静态区的变量从创建后直到整个程序结束之后才释放。

  • static修饰局部变量是改变了局部变量的生命周期,使其生命周期变长.

  • static修饰局部变量是改变了局部变量的储存位置,使得变为静态区。

注意:static修饰局部变量,是改变了局部变量的生命周期而不是作用域。

2.static修饰全局变量

  • 全局变量本身具有外部链接属性,可以在外部源文件通过extern链接使用。
  • static修饰全局变量后,使全局变量不在有外部连接属性,不可以在外部源文件通过extern链接使用。
  • static修饰全局变量使其作用域变小,使全局变量的外部链接属性变成了內部链接属性。

3.static修饰函数

  • 函数本身具有外部链接属性,可以在外部源文件通过extern链接使用。
  • static修饰函数后,使函数不在有外部连接属性,不可以在外部源文件通过extern链接使用。
  • static修饰函数使其作用域变小,使函数的外部链接属性变成了內部链接属性。

总结

static修饰局部变量、全局变量、函数时意义分别也是不同的。但是修饰全局变量、函数时较为相似。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iShaodong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值