本篇根據各個公司的面試問的常見問題進行總結。
公眾號回復“面試”,獲取pdf答案
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
,什么情況下用 deque57 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答案
點【在看】是最大的支持