作用域和生命週期問題:
作用域 生命週期 存放位置
區域性 從定義處開始到函式結束 函式開始到函式結束 棧空間
塊 從定義處開始到塊結束 函式開始到函式結束 棧空間
全域性 工程的任何地方 程式模組載入到解除安裝 資料區
靜態全域性 工程的任何地方 程式模組載入到解除安裝 資料區
析構函式必須是虛函式 而c++預設函式不是虛函式原因
將可能會被繼承的父類的析構函式設定為虛函式,可以保證當我們new乙個子類,然後使用基類指標指向該子類物件,釋放基類指標時可以釋放掉子類的空間,防止記憶體洩漏。
c++預設的析構函式不是虛函式是因為虛函式需要額外的虛函式表和虛表指標,占用額外的記憶體。而對於不會被繼承的類來說,其析構函式如果是虛函式,就會浪費記憶體。因此c++預設的析構函式不是虛函式,而是只有當需要當作父類時,設定為虛函式。
指標常量和常量指標
指標常量本質是乙個常量,而用指標修飾它。指標常量的值是指標,這個值因為是常量,所以不能被賦值。
指標不可改變,指向位址內容可以發生改變 表現形式 int * const p
常量指標又叫常指標,可以理解為常量的指標,也即這個是指標,但指向的是個常量,這個常量是指標的值(位址),而不是位址指向的值。
限制了通過該指標修改變數的內容 表現形式 int const*p
各種筆試題(待補充)
某公司筆試題 1.int px new int long py new long 32 分別寫出指標px和py的記憶體釋放語句 delete px delete py 2.在4位元組對齊的情況下 struct a long lnum 4byte char pcname 4byte short int...
面試題 C 基礎篇(補充)
1 定義乙個常量,可以很方便地進行引數的調整和修改。const物件一旦建立後其值不能被修改,所以const物件必須初始化。2 const 變數相對於巨集定義更安全。編譯器可以對const變數進行型別安全檢查,而對巨集定義只進行字元替換,沒有型別安全檢查,並且在字元替換時可能會產生意料不到的錯誤。3 ...
指標 待補充
將位址視為指定的量,將值視為派生量。指標 一種特殊型別的變數 用於儲存值的位址。指標名表示的是位址,運算子被稱為間接值或解除引用運算子,將其應用於指標,可以得到該位址處儲存的值。例,假設manly是乙個指標,manly表示的是乙個位址,manly表示儲存在該位址處的值。宣告和初始化 運算子兩遍的空格...