c中的static
在程序開始執行時初始化,c中static修飾變數和函式
靜態變數
儲存於全域性變數區
靜態區域性變數:程序的執行過程中,函式退出不被銷毀
靜態全域性變數:只能被本檔案的函式呼叫訪問,對其他原始檔不可見
靜態函式:只在宣告它的檔案中可見,對其他原始檔不可見。定義時不加static
作用總結:
1、隱藏。對其他原始檔不可見。與其他檔案的同名函式或變數不存在衝突問題,降低模組間的耦合度。
2、永續性,在程序執行過程中不釋放
3、如果不賦初始值,初始化預設值為0;
c++中的static
c++中的static面向過程的和c中的使用相同。
物件導向中static的使用:靜態資料成員和靜態成員函式
靜態資料成員:同一類的所有例項物件共用同乙個靜態資料成員,不能在宣告時定義,定義時分配空間
定義格式: <資料型別><類名>::<靜態資料成員名>=<值>
訪問格式:<類物件名>.<靜態資料成員名> 或 <類名>::<靜態資料成員名>
同全域性變數相比,使用靜態資料成員有兩個優勢:
靜態資料成員沒有進入程式的全域性名字空間,因此不存在與程式中其它全域性名字衝突的可能性;
可以實現資訊隱藏。靜態資料成員可以是private成員,而全域性變數不能;
靜態成員函式:
靜態成員函式由於不是與任何的物件相聯絡,因此它不具有this指標。從這個意義上講,它無法訪問屬於類物件的非靜態資料成員,也無法訪問非靜態成員函式,它只能呼叫其餘的靜態成員函式。
靜態成員之間可以相互訪問,包括靜態成員函式訪問靜態資料成員和訪問靜態成員函式;
非靜態成員函式可以任意地訪問靜態成員函式和靜態資料成員;
靜態成員函式不能訪問非靜態成員函式和非靜態資料成員;
由於沒有this指標的額外開銷,因此靜態成員函式與類的全域性函式相比速度上會有少許的增長;
呼叫靜態成員函式,可以用成員訪問操作符(.)和(->)為乙個類的物件或指向類物件的指標呼叫靜態成員函式,也可以直接使用如下格式:
<類名>::<靜態成員函式名>(<參數列>)
ps: 可重入函式(也可以說是可**的):只要輸入資料相同就應產生相同的輸出。
因此,一般包含static變數的函式都是不可重入的。
C C 中Static和Const的作用
尊重 一 const的作用 const是c語言的一種關鍵字,它所限定的變數是不允許被改變的,從而起到保護的作用!const關鍵字可以用於修飾變數,引數,返回值,甚至函式體。const可以提高程式的健壯性,減少程式出錯。一 const用於定義常量和修飾變數 當定義某個變數時,用const修飾,則該變數...
C C 中static的用法
c c 的static有兩種用法 面向過程程式設計中的static和物件導向程式設計中的static。前者應用於普通變數和函式,不涉及類 後者主要說明static在類中的作用。一 面向過程設計中的static 1 靜態全域性變數 在全域性變數前,加上關鍵字static,該變數就被定義成為乙個靜態全域...
C C 中static的使用
最近在看 c 總是不斷的遇到關鍵字static,對此關鍵字不是很了解,每次遇到都有些困惑,不知道此處為啥要用static,今日通過網上一些資料,仔細認真的了解了 static 的用法。static的在好多程式語言中存在,那他在 c 中出現的原因是什麼呢?換句話說就是在 c 中什麼時候需要使用到 st...