static关键字:
static关键字是每个c++工程师必须掌握也是最基本的,阿里一面都问
一、定义全局变量
static放在全局变量前,就变成了全局静态变量。
储存在静态存储区。
作用:全局静态变量在本.cpp文件可以访问,外部文件不可访问。
全局变量可以通过在外部文件中extern声明。
二、定义局部变量
和全局变量类似,变成了局部静态变量
储存在静态存储区。
局部静态变量,在函数体内,只调用一次(初始化一次)
局部静态变量只初始化一次,在程序编译时初始化,而不是函数开始时,在该程序退出后才释放
三、定义函数
变为静态函数。
作用:如果不想其他文件调用该函数,那么加上static修饰,也就是防止重名。与全局静态变量相似
四、定义类的成员
变为类的静态成员,初始化必须在类的外面初始化,初始化加上类的作用域。
类的静态成员属于这个类,而不是这个类的对象,也就是说对象s1对类的静态成员调用之后,当对象s2使用该类的静态成员时,该值就变成了s1运行之后的结果,而不是类中初始化之后的结果。
五、定义类的函数
变为类的静态成员函数
类的静态成员函数只能调用类中的静态成员。