当前位置: 首页 > article >正文

C初阶(六)--- static 来喽

前言:C语言中有许多关键字(关键字是预先保留的标识符,具有特殊意义,不能用作变量
           名、函数名等普通标识符。)

           比如:前面在变量与常量那一节提到的extern 就是一个关键字,应该还记得extern是             干什么的吧(坏笑)。

           今天,杰哥给大家带来的是关键字static作用 的小小的知识汇总。

 static(静态存储类型)的作用

一、修饰局部变量

在函数内部,使局部变量具有静态存储期。变量只会初始化一次,在函数多次调用间保留其值。

首先,先小小地看一下这张图:

诸侯崛起,逐鹿中原,多年纷争,三分天下。

———— “局部变量”在栈区 (变量的生命周期较短)

————“全局变量”在静态区 (变量的生命周期较长)

 

那么,以上这张图能和static 有什么关系呢?

———— static 能使得 局部变量从栈区移到静态区,从而改变变量的生命周期。示例如下:

(1、以下调用了函数,函数呢 ? 不知道的话,可以先把函数理解成一个加工厂,而main 理解为公司总部,公司中的半成品要移到加工厂加工;     2、while是一种循环语句,用于在一定条件下的再次运行/重复操作)

——左图:每次调用并进入函数test ,a 每次都会重置(初始化都0)

——右图:a的值得以保留,直到程序结束

 

 总的来说,变量的作用域(还是在test函数中)不变,但是生命周期变长了 。

二、修饰全局变量

限制全局变量的作用域,使其只能在定义它的源文件内使用,其他源文件无法直接访问。

示例如下:

前面,我们已经知道extern 用来声明外部变量,使得其它源文件的变量(外部变量)可以在本源文件中使用 。

这是因为: 

  • 全局变量本身是具有外部链接属性的。在A文件中定义的变量,在B文件中可以通过链接被使用。

但是:

  • 如果全局变量被static修饰,这个外部链接属性就变成了内部链接属性,这个全局变量只能在自己所在的源文件内部使用。

三、修饰函数

 类似修饰全局变量的作用,使函数只能在其定义的源文件内被调用,不能被其他源文件调用。

  • 函数本身是具有外部链接属性的。
  • 被static修饰后,外部链接属性就变成了内部链接属性,使得这个函数只能在自己所在的源文件内部使用,其他源文件无法使用 。

四、实操 (输出的答案下节公布)

 


http://www.kler.cn/news/330363.html

相关文章:

  • IDEA:Properties in parent definition are prohibited
  • 系统架构设计师-英文翻译题(2022年下半年)
  • Android build子系统(01)Ninja构建系统解读
  • Python字符串string方法大全及使用方法[2]以及FastApi关闭接口文档、隐藏部分接口、关闭schemes的实现
  • 考研日语 - 高频核心 2200 词(七)
  • PostgreSQL 中的公用表表达式(CTE)学习指南
  • Vxe UI vue vxe-table vxe-text-ellipsis 如何实现单元格多行文本超出、多行文本溢出省略
  • 0基础学前端 day10--css预处理
  • 如何查询 Elasticsearch 的版本
  • C Primer Plus 第7章习题
  • 国产化框架PaddleYOLO结合Swanlab进行作物检测
  • 数据库管理-第245期 主流国产数据库RAC架构概览(20240929)
  • 《深度学习》OpenCV 角点检测、特征提取SIFT 原理及案例解析
  • Linux中的进程间通信之共享内存
  • Python知识点:如何使用Kafka与Python进行流数据处理
  • 如何配置flutter(超详细的哦)
  • 第18周 第2章JSON入门
  • Ubuntu24.04桌面版下的网络管理
  • V3D——从单一图像生成 3D 物体
  • github 远程仓库删除 本地重新上传