1、靜態局部變量函數
1.static修飾的局部變量,不像其餘局部變量同樣函數退出時就消失,它的存儲於全局區,生命週期是整個文件;this
2.可是靜態局部變量的做用域仍是和其餘局部變量同樣在函數中,只能在該函數中調用,退出函數後還存在但不能使用;指針
3.在聲明時若是沒有初始化,編譯器會將它自動初始化爲0。對象
2、靜態全局變量:生命週期
1.靜態全局變量只能在本文件中訪問,其餘文件不可訪問;作用域
2.其餘文件中能夠定義與它同名的變量,互不影響。編譯器
3、靜態函數編譯
1.靜態函數只能在聲明它的文件中可見,其餘文件中不能使用該函數;class
2.其餘文件中能夠定義與它同名的函數,互不影響。變量
4、靜態屬性
1.static修飾的屬性稱爲靜態屬性,靜態屬性屬於類而非某個對象,不管實例化了多少個對象,它只有一份;
2.任何一個該類的對象均可以對它操做,一個對象改變了它的值,其餘對象中的也會改變;
3.因此,就算沒有實例化對象,也能夠直接操做靜態數據成員;
4.至關於加了一個類約束和訪問控制屬性限制的全局變量,表示只能在這個類裏面使用(做用域),它存儲(生命週期)在全局區;
5.靜態屬性必須在類外定義和初始化;
5.和普通數據成員同樣,靜態數據成員也聽從public, protected, private訪問規則;
6.初始化格式:數據類型 類名::靜態成員名=值 (int Class::num=0);
7.訪問方式:① 類對象名.靜態成員名 (cla.num);
② 類類型名::靜態成員名 (class::num);
5、靜態成員函數
1.static修飾的函數稱爲靜態函數,靜態函數也是屬於整個類,而不是某個對象;
2.靜態成員函數沒有隱藏this指針;
3.它沒法訪問屬於類對象的非靜態屬性,也沒法調用非靜態成員函數;
4.只能訪問靜態屬性 和 調用靜態函數;
5.態函數實際上是加了類約束 及 訪問控制屬性限制的 全局函數。