小心Static和const的坑

2021-09-28 16:02:49 字數 769 閱讀 1618

static 區域性變數:將變數宣告為函式的的區域性變數,那麼這個變數再函式執行之後不會被釋放,而是繼續保留再記憶體中。

static 全域性變數:表示乙個變數 能再當前檔案的全域性中訪問。

static函式:表示乙個函式只能再當前檔案中訪問;

static類成員變數:表示這個成員變數為整個類所有。

static類成員函式:表示這個函式為全類所共有,而且只能訪問靜態成員變數

1.const常量:定義時就初始化,以後不能修改;

2 const形參:作為const形參時,再函式中不能改變。

3 const修飾類成員函式:該函式對成員變數只能進行讀操作。

1 函式體內的static變數的作用範圍為該函式體,由於只分配一次記憶體,其值再下次呼叫時仍維持上次的值。

2 再模組內的static全域性變數和函式可以被模組內的函式所訪問,但不能被模組外的函式所訪問。

3 在類中的static成員變數屬於整個類所擁有,對類所有物件都有乙份拷貝;

4 在類中的static成員函式屬於整個類,這個函式不接收this指標,因而只能接收類的static的成員變數;

1 阻止乙個變數被改變

2 宣告常量指標和指標常量

3 const修飾形參,表示它是乙個輸入引數,在函式內部不改變其值

4 對於類的成員函式,若其指定為const型別,則表明它是乙個常函式,不能改變類的成員變數。

5 對於類的成員函式,有時候必須指定其返回值是const型別,以使其返回值不為「左值」

左值和右值

static和const的使用

static 檔案域 位置域 區域性,類 在乙個類中宣告了,在類外定義,static變數定義時所在的檔案,就構成了該變數的作用範圍。乙個類的static變數,如果在標頭檔案中定義,多個其他檔案include這個檔案的時候,就會使得這個static有多個實體。也就是乙個類定義了多個static變數,然...

const和static的使用

const和static的使用 使用const。這一點在很多經典的關於c 和c 的書籍中是必談的要點。在 exceptional c 一書中,對這點有很精彩的描述,現摘錄如下 沒有正確的安全意識的槍手在世界上是不可能活的很長的。const 觀念不正確的程式設計師也是一樣和沒有時間戴緊帽子的正確,沒有...

const和static的區別

const和static的區別 一 const 1.static 區域性變數 將乙個變數宣告為函式的區域性變數,那麼這個區域性變數在函式執行完成之後不會被釋放,而是繼續保留在記憶體中 2.static 全域性變數 表示乙個變數在當前檔案的全域性內可訪問 3.static 函式 表示乙個函式只能在當前...