C++static关键字详解
2021/12/31 20:37:19
本文主要是介绍C++static关键字详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
今天和同学在交流的时候,他无意中提到了static,我当时好像记得这在C++中好像出现过,但是感觉不太熟悉,于是晚上回来我就整理了一下:
首先我们要知道在c++和c语言中,static的关键字的一些共同点
对于全局变量和局部变量
在正常情况下,全局变量在内存中存储的位置在全局区,局部变量存储的变量在栈区,如果我们在局部和全局变量的申明前加上关键字static,它就变成了静态变量,这个时候它们的在内存中的存储区都是在全局区。
加上static关键字后,对于全局变量和静态变量,如果我们没有给它初始化的话,它们能的默认值都是0,还有就是它们只能本文件下被使用,在其他文件下不能调用,最后就是他们会一直被储存直到整个程序运行结束,相对于局部变量,它不会因为代码块或者函数的结束而被立马释放,而是会一直保留,到下一次函数或代码块被调用时,又能调用局部变量,这个时候它的值和上次一样。
对于函数
如果我在函数的返回类型前面加上一个static,那么它就变成了静态函数,我们知道正常函数的默认是extern,而加上static以后,函数就只能在当前文件中被调用,而且这个时候如果在其他文件中有同名的函数也不关系。
对于c++,因为c++在c语言的基础上,还多了面向对象的部分:
对于类的数据成员
如果我们在定义时加上了static,那么意味着我这个数据成员不再是某一个对象的成员了,而是多个对象的成员,这意味着多个对象的静态数据成员都储存在同一个地方。
对于类的成员函数
如果我加上static,那么这个函数就变成了静态成员函数,这个时候他也是只能在本文件上调用,同时要注意的一点是,我在访问成员函数时就不用对象名了,直接类名加上函数名,而且静态函数不能直接调用非静态数据成员,要通过对象名加成员名访问,静态数据成员可以直接访问。
这篇关于C++static关键字详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-04安装 VPrix Desktop 的系统要求-icode9专业技术文章分享
- 2024-05-01巧用 TiCDC Syncpoint 构建银行实时交易和准实时计算一体化架构
- 2024-05-01银行核心背后的落地工程体系丨Oracle - TiDB 数据迁移详解
- 2024-04-26高性能表格工具VTable总体构成-icode9专业技术文章分享
- 2024-04-16软路由代理问题, tg 无法代理问题-icode9专业技术文章分享
- 2024-04-16程序猿用什么锅-icode9专业技术文章分享
- 2024-04-16自建 NAS 的方案-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数, 加上remote_src: yes 配置-icode9专业技术文章分享
- 2024-04-14ansible 检测远程主机的8080端口,如果关闭,则echo 进程已关闭-icode9专业技术文章分享