本篇根據各個公司的面試問的常見問題進行總結。
1 變量的聲明和定義有什麼差別
2 簡述#ifdef、#else、#endif和#ifndef的作用
3 寫出int 、bool、 float、指針變量與 “零值”比較的if語句
4 結構體可以直接指派嗎
5sizeof和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線程不安全的情況