static變數:
區域性變數:改變了變數的儲存方式(生命週期),使它儲存於靜態區中,在編譯期間就分配記憶體,在整個程式執行期間一直存在。但是變數的作用域保持不變。
全域性變數:改變了變數的鏈結屬性,即變數只在本檔案中有效。
static函式:
改變了函式的連線屬性,即函式只在本檔案內部有效,其他檔案不可見。
已初始化的靜態變數儲存在 .data段。未初始化的靜態變數,編譯器將自動初始化為0,未初始化的靜態變數儲存在 .bss 段,不分配空間。
static資料成員:
①、靜態類成員有乙個特點:無論建立多少個物件,程式都只建立乙個靜態類變數副本,和類的成員函式一樣,類的所有物件共享同乙個靜態成員。
②、類靜態成員變數必須在類外定義,定義時不新增static關鍵字,這是因為類中的宣告只描述了如何分配記憶體,但並不分配記憶體。類靜態成員可用類名::靜態成員或者物件.靜態成員來訪問。
③、靜態資料成員可以通過物件名來引用,也可以通過類名來引用。
④、如果靜態成員是整形或列舉型const,則可以在類宣告中初始化。
static成員函式:
①、靜態成員函式也是屬於類,而不是屬於物件的,它是為了能處理靜態資料成員。當呼叫乙個物件的成員函式時,系統會把該物件的位址賦給成員函式的this指標,而靜態成員函式並不屬於某一物件,它與任何物件都無關,因此靜態成員函式沒有this指標,所以它也就無法對乙個物件的非靜態資料成員進行預設訪問。
②、如果想訪問,就只能通過對給靜態成員函式傳入物件,通過物件名和"."運算子來訪問。
③、靜態成員函式可以直接訪問本類中的靜態資料成員。
④、類的靜態成員函式沒有預設的this指標,因此在它裡面不能使用任何非靜態成員。
⑤、靜態成員和類的普通成員一樣,也有public、protected、private3種訪問級別,也可以具有返回值,const修飾符等引數。
static關鍵字總結
當同時編譯多個檔案時,加上static關鍵字的全域性變數和函式具有隱藏作用,而所有未加static關鍵字的全域性變數和函式具有全域性可見性 舉例來說,同時編譯兩個原始檔,檔案 如下 a.c 如下 include char a a void message b.c 如下 include int mai...
this關鍵字 static關鍵字
1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...
this和static關鍵字總結
this 關鍵字 1 this 表示的是當前本身。更準確的說,this 代表當前物件的乙個引用。2 區分類成員屬性和方法的形參,呼叫當前物件的其他方法。任意位置 3 使用 this 來呼叫其他構造方法。必須是第一條語句 4 this 不能用於 static 方法。示例 public class te...