本篇根據各個公司的面試問的常見問題進行總結。c++
公衆號回覆「面試」,獲取pdf答案web
-
1 變量的聲明和定義有什麼區別 -
2 簡述 #ifdef、#else、#endif
和#ifndef
的做用 -
3 寫出 int 、bool、 float
、指針變量與 「零值」比較的if
語句 -
4 結構體能夠直接賦值嗎 -
5 sizeof
和strlen
的區別 -
6 C 語言的關鍵字 static
和 C++ 的關鍵字static
有什麼區別 -
7 C 語言的 malloc
和 C++ 中的new
有什麼區別 -
8 寫一個 「標準」宏MIN -
9 ++i
和i++
的區別 -
10 volatile
有什麼做用 -
11 一個參數能夠既是 const
又是volatile
嗎 -
12 a
和&a
有什麼區別 -
13 用 C 編寫一個死循環程序 -
14 結構體內存對齊問題 -
15 全局變量和局部變量有什麼區別?實怎麼實現的?操做系統和編譯器是怎麼知道的? -
16 簡述 C、C++ 程序編譯的內存分配狀況 -
17 簡述 strcpy、sprintf
與memcpy
的區別 -
18 請解析 (*(void (*)( ) )0)( )
的含義 -
19 C語言的指針和引用和c++的有什麼區別? -
20 typedef
和define
有什麼區別 -
21 指針常量與常量指針區別 -
22 簡述隊列和棧的異同 -
23 設置地址爲 0x67a9
的整型變量的值爲0xaa66
-
24 編碼實現字符串轉化爲數字 -
25 C 語言的結構體和 C++ 的有什麼區別 -
26 簡述指針常量與常量指針的區別 -
27 如何避免「野指針」 -
28 句柄和指針的區別和聯繫是什麼? -
29 new/delete
與malloc/free
的區別是什麼 -
30 說一說 extern「C」
-
31 請你來講一下 C++ 中 struct
和class
的區別 -
32 C++ 類內能夠定義引用數據成員嗎? -
33 C++ 中類成員的訪問權限 -
34 什麼是右值引用,跟左值又有什麼區別? -
35 面向對象的三大特徵 -
36 說一說 c++ 中四種 cast
轉換 -
37 C++ 的空類有哪些成員函數 -
38 對 c++ 中的 smart pointer
四個智能指針:shared_ptr,unique_ptr,weak_ptr,auto_ptr
的理解 -
39 說說強制類型轉換運算符 -
40 談談你對拷貝構造函數和賦值運算符的認識 -
41 在 C++ 中,使用 malloc
申請的內存可否經過delete
釋放?使用new
申請的內存可否用free
? -
42 用 C++ 設計一個不能被繼承的類 -
43 C++ 本身實現一個 String
類 -
44 訪問基類的私有虛函數 -
45 對虛函數和多態的理解 -
46 簡述類成員函數的重寫、重載和隱藏的區別 -
47 鏈表和數組有什麼區別 -
48 用兩個棧實現一個隊列的功能 -
49 vector
的底層原理 -
50 vector
中的reserve
和resize
的區別 -
51 ``vector 中的
size和
capacity`的區別 -
52 vector 中
erase方法與
algorithn中的
remove`方法區別 -
53 vector
迭代器失效的狀況 -
54 正確釋放 vector
的內存(clear(), swap(), shrink_to_fit())
-
55 list
的底層原理 -
56 什麼狀況下用 vector
,什麼狀況下用list
,什麼狀況下用 deque` -
57 priority_queue
的底層原理 -
58 map 、set、multiset、multimap
的底層原理 -
59 爲什麼 map
和set
的插入刪除效率比其餘序列容器高 -
60 爲什麼 map
和set
每次Insert
以後,之前保存的iterator
不會失效? -
61 當數據元素增多時(從 10000 到 20000), map
的set
的查找速度會怎樣變化? -
62 map 、set、multiset、multimap
的特色 -
63 爲什麼 map
和set
的插入刪除效率比其餘序列容器高,並且每次insert
以後,之前保存的iter
-
64 爲什麼 map
和set
不能像vector
同樣有個reserve
函數來預分配數據? -
65 set
的底層實現實現爲何不用哈希表而使用紅黑樹? -
66 hash_map
與map
的區別?何時用hash_map
,何時用map
? -
67 迭代器失效的問題 -
68 STL
線程不安全的狀況
公衆號回覆「面試」,獲取pdf答案面試
點【在看】是最大的支持 編程
本文分享自微信公衆號 - 編程學習基地(LearnBase)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。數組