收集 經典C C 面試題(五)

2022-03-25 09:28:35 字數 845 閱讀 8375

1. c++的類和c裡面的struct有什麼區別?

struct成員預設訪問許可權為public,而class成員預設訪問許可權為private

2. 析構函式和虛函式的用法和作用

析構函式是在物件生存期結束時自動呼叫的函式,用來釋放在建構函式分配的記憶體。

虛函式是指被關鍵字virtual說明的函式,作用是使用c++語言的多型特性

3. 全域性變數和區域性變數有什麼區別?是怎麼實現的?作業系統和編譯器是怎麼知道的?

1) 全域性變數的作用用這個程式塊,而區域性變數作用於當前函式

2) 前者在記憶體中分配在全域性資料區,後者分配在棧區

3) 生命週期不同:全域性變數隨主程式建立和建立,隨主程式銷毀而銷毀,區域性變數在區域性函式內部,甚至區域性迴圈體等內部存在,退出就不存在

4) 使用方式不同:通過宣告後全域性變數程式的各個部分都可以用到,區域性變數只能在區域性使用

4. 有n個大小不等的自然數(1--n),請將它們由小到大排序.要求程式演算法:時間複雜度為o(n),空間複雜度為o(1)。

void sort(int e, int n)

void main(void)

c. **函式與api函式

**和api非常接近,他們的共性都是跨層呼叫的函式。但區別是api是低層提供給高層的呼叫,一般這個函式對高層都是已知的;而**正好相反,他是高層提供給底層的呼叫,對於低層他是未知的,必須由高層進行安裝,這個安裝函式其實就是乙個低層提供的api,安裝後低層不知道這個**的名字,但它通過乙個函式指標來儲存這個**函式,在需要呼叫時,只需引用這個函式指標和相關的引數指標。

其實:**就是該函式寫在高層,低層通過乙個函式指標儲存這個函式,在某個事件的觸發下,低層通過該函式指標呼叫高層那個函式。

收集 經典C C 面試題(二)

1.以下三條輸出語句分別輸出什麼?c易 char str1 abc char str2 abc const char str3 abc const char str4 abc const char str5 abc const char str6 abc cout boolalpha str1 st...

經典C C 面試題

1.介紹一下stl,詳細說明stl如何實現vector。answer stl 標準模版庫,standard template library 它由容器演算法迭代器組成。stl有以下的一些優點 可以方便容易地實現搜尋資料或對資料排序等一系列的演算法 除錯程式時更加安全和方便 即使是人們用stl在uni...

經典C C 面試題

1.介紹一下stl,詳細說明stl如何實現vector。answer stl 標準模版庫,standard template library 它由容器演算法迭代器組成。stl有以下的一些優點 可以方便容易地實現搜尋資料或對資料排序等一系列的演算法 除錯程式時更加安全和方便 即使是人們用stl在uni...