| |
|
开发:
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/C++中static的作用 -> 正文阅读 |
|
[C++知识库]C/C++中static的作用 |
文章参考与<零声教育>的C/C++linux服务期高级架构线上课学习 首先我们先介绍一下全局变量和局部变量,和static修饰变量的作用 局部变量:在一个函数的内部定义的变量叫局部变量,它的生命周期只限于当前函数。也就是说这个函数执行完return之后里边的的变量就会被回收,外部不能看到也不能使用
全局变量:在函数外定义的变量叫全局变量,它的生命周期和和有效范围是从声明这个变量开始位置到源文件结束(跨文件使用需要在想要调用这个全局变量的源文件中加上extern做一个全局变量声明,如果在某个函数中想引用后边的全局变量,和跨文件的一样)
全局变量有几点需要注意的地方: 0)使用全局变量需要注意,一经初始化分配内存生命周期就一直存在,直到整个程序结束 1)全局变量定义只能有一次(声明可以多次),位置是函数外,定义时会分配内存,也可以直接初始化。 2)在同一个源文件中,如果全局变量和局部变量同名,则在局部变量的作用范围,不会去影响全局变量 3)跨文件使用全局变量的extern关键词的用法,一般都是要求将extern说明放在源程序文件的开头(一般位于#include之后)。需要注意的是:使用这种跨文件的全局变量要很小心,因为某个源文件的某个函数中改变了这些全局变量的值,也会影响到其他源程序文件中使用该全局变量的值的函数 4)如果希望某些全局变量只能在当前源文件中被使用那么就用static来修饰 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 再来介绍一下内部函数和外部函数和static修饰函数的作用 内部函数:内部函数也被称为静态函数,只能在当前文件中使用。所以不同的源文件中使用了同名函数彼此不受干扰。如果希望本函数只能被当前源文件中的其他函数调用。那么定函数时,在最前边加上static关键字就可以:
外部函数:定义一个函数无需加static关键字。跨文件使用需要声明
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 再来看看static在类中又有什么作用:静态成员变量,静态成员函数 我们先来看一段代码:
?试着调用一下:
那么如果有这么一个场景,每一次调用就加一呢?这样有没有办法拿到上一个对象的Minute值呢? 那就是我们要介绍的static关键字修饰成员变量(static int Minutes)可以做到: 称为静态成员变量,它不属于某个对象,而是属于整个类。这个变量可以通过类名作用域来改变,这个变量一旦改变,其他的对象也可以看到这个变量被改变
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------static关键字的用法总结: 1)函数内部在定义一个局部变量时,在前面是用static关键字,则该变量就会保存到静态存储区,在编译的时候被初始化,如果不给初始化值,就会初始化成0,并且下次调用该函数的时候该变量保持上次离开该函数的值。 2)定义全局变量时前面使用static关键字,那么该全局变量只能在本文件中使用,无法在其他的文件被使用 3)在函数之前增加static,那么该函数只能在本源文件中调用,无法在其他源程序文件中调用。 4)在类中的变量或函数前边添加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图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 16:49:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |