C语言中
static关键字当用于不同语境时,意义不同 1 当用于定义函数 ,或在代码块之外声明变量时,static只用于修改标识符的链接属性,从external( 外部的)改为 internal(内部的),但标识符的存储类型和作用域不受影响。 声明的函数或变量只能在他们的源文件中被访问。
2 当用于代码快内部的变量声明时,static用于修改变量存储类型,从自动变量修改为静态变量,链接属性和作用域不受影响。 (自动变量 ( auto ) 存在栈上), register关键字生命的自动变量存储在寄存器中。即寄存器变量。
C++中
static 声明类的成员变量为静态成员变量(共享同步的), 声明类的成员函数为类的静态成员函数, 静态成员一定要在内外初始化,在类内声明;
1 静态成员为所有类对象v共享,不单独私有;
2 静态成员变量必须在类外定义,定义时不加static
3静态成员可用 类名::类名.静态成员访问
4 静态是共享的 ,所以肯定没有this指针咯 静态成员函数没this ,所以不能访问任何非静态成员了。
5 静态成员和类的普通成员一样,也有 private proteced public 三种访问级别,也可以有返回值。
6 静态成员不影响类对象的大小