【C/C++】static
C/C++共有
static修饰局部变量(比如函数中的局部变量),此时这个变量的位置就在全局静态区,但仍旧只能在函数内部访问,比如
1 #include <iostream> 2 using namespace std; 3 4 void test(){ 5 static int a=0; 6 a++; 7 cout <<a<< endl; 8 } 9 10 int main() 11 { 12 13 test(); 14 //cout<<a;//会报错,不行,只能在test里访问 15 test(); 16 17 return 0; 18 }
作用域:作用域不变,只是出作用域不被销毁
生命周期:生命周期变长,程序结束生命周期才结束
static修饰全局变量,
作用域: 作用域变小,仅仅局限在当前文件下
生命周期:生命周期没变,因为全局变量任然存储在静态区上。
static修饰函数
作用域:作用域变小,仅仅局限于当前文件下
C++面对对象情况下
静态成员变量和静态成员函数都是在程序一开始就加载到内存中的,所以静态方法只能访问静态成员变量以及它的参数,但非静态方法是可以访问静态成员的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本