千家信息网

C语言中如何使用static

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍C语言中如何使用static,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.static 可以修饰局部变量首先让我看看这段代码#includevoid tes
千家信息网最后更新 2026年11月01日C语言中如何使用static

这篇文章主要介绍C语言中如何使用static,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1.static 可以修饰局部变量

首先让我看看这段代码

#includevoid test(){        int a = 1;        a = a + 1;        printf("%d", a);}int main(){        int i = 0;        while (i < 10)        {                test();                i++;        }        return 0;}

你认为输出的结果是什么呢?

那为什么结果是2222222222呢

因为局部变量 a 进入这个范围创建 出了这个范围销毁 所以结果都是2

当我们加上static 的结果又会是什么

那为什么加上 static 结果就不一样了

我们研究一下static的使用原理

我们的内存分为三大类

我们的局部变量放在栈区

而static把a放在了静态区 而在静态区的变量 出了他的范围是不销毁的

我们对比一下 可能更加直观

所以 static 修饰局部变量的时候,其实改变的是局部变量得存储位置

静态得局部变量是放在静态区,放在静态区的变量出了作用域是不会销毁的,相当于生命周期延长了。

补充 变量的作用域是不变的,只是生命周期延长了

2. static 可以修饰全局变量

我们再创建一个源文件

全局变量的作用域是整个工程

如果我们想引用另一个源文件的函数 这里我们不得不说 extern 这个关键字

如图

static 可以修饰全局变量 如果我们再全局变量前 加上static会是什么结果呢

此时就会报错

一个全局变量具有外部链接属性的 (就是可以被其他源文件引用)但是被static 修饰后外部链接属性就变成了内部链接属性 只能在自己所在的源文件内部使用不能在其他文件内部使用

所以再次调试的时候就会报错

那 static 修饰的全局变量的本质是 外部链接属性发生改变 而不是他的作用域变小

static 修饰全局变量的意义是 如果你定义了一个全局变量 别人用 extern 就可以随便使用

如果你不想让别人看 就可以用static .

3.static 可以修饰函数

我们用另一个源文件创建一个函数 如图

用 关键字extern 声明后 调试结果

这里我们在函数前加上static 又会是什么结果呢

其实一个函数本身具有外部链接属性 被static修饰后 外部链接属性变成了内部链接属性 只能在源2.c 内部使用 其他源文件无法使用 使用上感觉作用域变小

我们可以发现 static 修饰全局变量和修饰函数用法一样

以上是"C语言中如何使用static"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

变量 全局 结果 属性 链接 函数 局部 源文件 作用 静态 范围 语言 关键 关键字 内容 周期 时候 生命 篇文章 会报 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 工业互联网科技新基建 互联网科技社 天扬科技互联网广告 佳云科技和互联网广告 青岛科技大学互联网大赛研究生 恒生互联网科技指数跳水 链环科技传统企业怎么转型互联网 朱啸虎曾投资哪些互联网科技企业 互联网时代的科技公司 广州富喜互联网络科技 本届互联网大会上的黑科技 上海同邻互联网科技有限公司规模 互联网科技收购价值 中国互联网公司的科技投入 求路客互联网科技电话 科技和互联网行业的特点 众联互联网络科技 杭州融税互联网科技有限公司 山东亿川互联网科技有限责任公司 南京欣网互联网络科技 互联网科技公司起名 互联网科技工作委员会毛军 科技和互联网公司 互联网科技有限公司经营范围 互联网科技垄断 济南和联互联网科技有限公司 玖二柒互联网科技公司待遇 赶超互联网科技 微信多开 互联网科技包装股份有限公司上市
0