static关键字的作用:
c/c++共有:
1):修饰全局变量时,表明一个全局变量只对定义在同一文件中的函数可见。
2):修饰局部变量时,表明该变量的值不会因为函数终止而丢失。
3):修饰函数时,表明该函数只在同一文件中调用。
c++独有:
4):修饰类的数据成员,表明对该类所有对象这个数据成员都只有一个实例。即该实例归 所有对象共有。
5):用static修饰不访问非静态数据成员的类成员函数。这意味着一个静态成员函数只能访问它的参数、类的静态数据成员和全局变量
静态局部变量特点:
(1)该变量在全局数据区分配内存(局部变量在栈区分配内存)
(2)静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化
(局部变量每次函数调用都会被被初始化)
(3)静态局部变量一般在声明处初始化,如果没有显示初始化,会被程序自动初始化为0
(局部变量不会被初始化)
(4)它始终驻留在全局数据区,知道程序运行结束。但其作用域为局部作用域,也就是不能在函数体外使用它
(局部变量在栈区,