| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言中 Static关键字的用法和详解(太细了!!!) -> 正文阅读 |
|
[C++知识库]C语言中 Static关键字的用法和详解(太细了!!!) |
文章目录
前言? static在不同的语言中又有不同的使用方法,本文介绍的是static在C语言当中的用法。 一、static是什么? static在C语言中是关键字,中文直译过来是“静态的”,static关键字在C语言中主要是用来修饰变量和函数。 二、static的用法1.修饰局部变量? ——称为静态局部变量
? 我们用一段代码来进行详解:
? 这段代码中每次调用test()函数时创建局部变量x赋值为0,每次局部变量x出了test()函数后都会自行销毁。 ? 所以可以很容易得到输出结果为:1 1 1 1 1 1 1 1 1 1 ? 接着我们用上static关键字来修饰test()函数中的局部变量x:
? 输出结果变成了:1 2 3 4 5 6 7 8 9 10 ? 原因是static修饰了局部变量x,令局部变量x变成静态的,使得每次test()函数结束时局部变量x都不销毁,再次进入test()函数时则保留原有数值运行,因此x++数值越来越大。
注意:static修饰局部变量只改变生命周期,不改变作用域!2.修饰全局变量? ——称为静态全局变量
? 这段话什么意思呢,先来简单说说全局变量。 ? 全局变量的作用域十分的广,只要在一个源文件中定义后,这个程序中的所有源文件、对象以及函数都可以调用,生命周期更是贯穿整个程序。文件中的全局变量想要被另一个文件使用时就需要进行外部声明(以下用extern关键字进行声明)。 ? 接着我们用代码进行解析: ? 全局变量x在自己的文件内可以直接使用。 ? 但当全局变量在另一个文件内未进行外部声明就想直接用时会出现未定义的错误: ? ? ? ?此时只要使用extern关键字声明一下即可: ? ? ?接着我们进入正题,当我们用static修饰全局变量x后: ? ? ? ? 会发现生成错误,无法解析外部符号x,全局变量x不能被test.c文件调用了。所以我们可以很容易看出static修饰后让全局变量x的作用域变小了,令全局变量x无法被其他文件调用。
3.修饰函数? ——称为静态函数
? 我们直接上代码: ? 函数在另一个文件中使用时同样需要声明。 ? 但当函数被static修饰后: ? 会发现Add函数无法被解析了,static修饰后Add函数的作用域变小了。
总结? 以上就是要说的内容,本文仅仅简单介绍了static在C语言的使用,static在其他语言中还有更多的使用方法。本文是小编的第一篇知识总结,如有不足的地方欢迎大佬们在评论区指出。也还望各位觉得有用的话一键三连+关注,谢谢! |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 13:50:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |