C++ static关键字解析

1、static关键字修饰全局变量时,该变量存储在代码区,初始化时机在main函数之前(好像所有全局变量的初始化时机都是在main函数之前切被初始化为0)。且static修饰的全局变量仅限于本编译单元(一个编译单元即是一个cpp文件)可访问。

2、static修饰局部变量(即函数内部的变量),存储在静态区,但是访问权限仅限于该变量所属函数,初始化时机为第一次调用该函数,且此时该变量具有记忆性(即第一次调用该函数后对该静态变量进行了修改,第二次再调用该函数就会直接访问上次调用修改后的值,不会再对改该静态变量进行初始化)。

3、static修饰类的成员变量和类的成员函数:此时被static修饰的成员变量属于类,可以被类的所有对象共享,且所有对象都可以修改该变量,且会影响到其他变量。static修饰的成员函数(称为类的静态成员函数)属于类,且类的静态成员函数不能访问类的非静态变量,因为没有this指针。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章