常見C 面試題

2021-05-25 05:51:30 字數 868 閱讀 6854

1.解釋堆(heap)和棧(stack)的區別。

答:  堆: 1.由程式設計師分配釋放,存放new出來的物件

2.不連續,類似於鍊錶,大小取決於計算機系統的虛擬記憶體

棧: 1.由編譯器自動分配釋放,存放函式引數值或區域性變數等。

2.連續的儲存區域(2m左右),空間不足會提示棧溢位(overflow)

2.論述含引數的巨集與函式的優缺點。

答:   1.巨集展開是在編譯的時候進行的,在展開時並不分配記憶體單元。函式是在執行的處理的,分配臨時的記憶體單元。

2.函式中的引數有型別的限制,而巨集只是簡單的字元替換。

3.多次使用巨集,展開後**會很長,而函式不會。

3.講一講析構函式和虛函式的用法和作用。

答:   析構函式是特殊的類成員函式,沒有返回型別,沒有引數,不能隨意呼叫,也不能過載,只有在類物件的生命週期結束的時候由

系統自動呼叫,作用是釋放記憶體空間的作用。

虛函式是多型的一種表現。父類的指標指向子類的話,如果是虛方法,這呼叫的是子類的方法。如果父類的方法沒有必要或無法

實現,則可以將父類的方法設為純虛方法(virtual),如果乙個類包含乙個以上的純虛方法,則此類為抽象類。

4.在c++中有沒有純虛建構函式

答:沒有。虛擬機制的設計目的就是為了使程式設計師在不需要知道啊細節的情況下也能使用物件。但是如果自己建立乙個物件,那當然是必須要知道細節的。所以建構函式當然不能是純虛的了。

5.如何實現乙個非阻塞socket

答:select函式。

6.如何引用乙個已經定義過的全域性變數

答: 1.引用標頭檔案。如果變數名錯了,編譯的時候就會報錯。

2.extern關鍵字。如果變數名錯了,執行的時候才報錯。

C 常見面試題

1.c中static有什麼作用 1 隱藏。當我們同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性,故使用static在不同的檔案中定義同名函式和同名變數,而不必擔心命名衝突。2 static的第二個作用是保持變數內容的持久。儲存在靜態資料區的變數會在程式剛開始執行時就...

C常見面試題

1.bool型別,值為true或flase 正確答案 bool flag if flag if flag 以下均為不良風格 if flag true if flag 1 if flag false if flag 0 2.char 3.int int x if x 0 if x 0 4.float ...

C 常見面試題

vector中這兩個屬性很容易弄混淆。size是當前vector容器真實占用的大小,也就是容器當前擁有多少個容器。capacity是指在發生realloc前能允許的最大元素數,即預分配的記憶體空間。當然,這兩個屬性分別對應兩個方法 resize 和reserve 使用resize 容器內的物件記憶體...