【C++】static的作用

static的作用

  • 修饰局部变量
  • 修饰全局变量
  • 修饰函数
  • 修饰类的成员
  • 修饰类的成员变量
  • 修饰类的成员函数

修饰局部变量

概念 :static修饰局部变量就使之成为静态局部变量。
作用域 :静态局部变量的作用域并未发生变化,在其所在的局部范围,也就是其所定义的代码块内部。
生存期:静态局部变量实际上是特殊的全局变量,静态局部变量的生存期与全局变量一样是全局的,随程序启动而生,随程序结束而消亡。
特点:静态局部变量的初始化只会在第一次进入这个函数时进行初始化,当离开函数的时候,静态局部变量会继续存在并保持其值,以后进入函数时会保持上次离开时的值。

修饰全局变量

概念:static修饰局部变量就使之成为静态局部变量。
作用域:全局变量具有外部链接属性。使用静态修饰之后,多个源文件,可以使用相同的变量名称,不会冲突。该变量的作用域就仅限于当前源文件了。

修饰函数

概念:static修饰的函数称为静态函数
作用域:函数也具有外部链接属性。和修饰全局变量一样的效果,使用静态修饰函数时,可以在多个源文件中使用相同名称的函数,不会冲突。该函数的作用域就仅限于当前源文件了。

修饰类的成员

使用static修饰类的成员时,该成员就成为了静态成员
静态成员为所有类对象共享,属于类,不属于具体的某个对象,可以使用类名+作用域限定符访问

修饰类的成员变量

在类外初始化,没有初始化的话编译器会自动将其初始化为0。
生存周期:和静态局部变量/全局变量一样,都是随着程序开始运行分配空间,程序结束释放空间

修饰类的成员函数

可以在类内声明,类外定义
也可以在类内定义

普通成员函数能调用静态成员函数,静态成员函数不能调用普通成员函数

你可能感兴趣的:(C++,c++,开发语言)