1. 程式人生 > >c++ primer plus 第六版第九章學習筆記

c++ primer plus 第六版第九章學習筆記

  1. 靜態、自動、動態變數:

靜態指變數在使用完後不會消失,編譯器會為其指定特定的記憶體空間;自動變數在使用完後便會消失,編譯器將其存在稱為棧的地方;動態變數指用c++運算子new或c函式malloc()分配的記憶體,不是LIPO,其分配釋放順序取決於new、delete的使用,這個記憶體空間為堆。

2、Static靜態變數宣告說明:

  1. 在函式或程式碼塊外面宣告的變數為全域性變數,當不加任何說明符或者加extern說明符時,表示其為外部變數,在變數定義所屬的檔案之外使用extern關鍵字可使用同一個變數(在所有使用該變數的檔案中修改變數會相互影響),但只能在一個檔案中對其初始化;全域性變數+static說明符時,表示該變數為內部變數,只能在本檔案中對其使用。
  2. 在函式中或者程式碼塊(花括號包括的內容)中不加任何限定符的變數定義為區域性變數,其生命週期只在函式或者程式碼塊中,使用完後便消失,下次再進行函式呼叫或者程式執行到程式碼塊時,又將對其重新初始化,即上一次使用值不影響下一次使用;區域性變數+static表示為靜態變數,即每次使用後變數不消失,其一直存在,下一次使用的初始值為上一次使用後的結果值。

3、const+全域性變數,該變數的連結性為內部。

4、函式的連結性與持續性:

   預設函式均為外部的、靜態的,即函式可以在檔案中共享,且在整個程式執行期間都一直存在;在函式定義和原型中都使用static關鍵字時,該函式只在該檔案中可見;

5、名稱空間使用

1)using 宣告與using 編譯:前者使單名稱的可見;後者使名稱空間中的所有名稱均可見;作用域為宣告區域;

2)可使用作用域解析符“::”在每次使用名稱空間的名稱時進行說明;