C語(yǔ)言與C++常見面試題
本篇根據(jù)各個(gè)公司的面試問的常見問題進(jìn)行總結(jié)。
公眾號(hào)回復(fù)“面試”,獲取pdf答案
-
1 變量的聲明和定義有什么區(qū)別 -
2 簡(jiǎn)述 #ifdef、#else、#endif和#ifndef的作用 -
3 寫出 int 、bool、 float、指針變量與 “零值”比較的if語(yǔ)句 -
4 結(jié)構(gòu)體可以直接賦值嗎 -
5 sizeof和strlen的區(qū)別 -
6 C 語(yǔ)言的關(guān)鍵字 static和 C++ 的關(guān)鍵字static有什么區(qū)別 -
7 C 語(yǔ)言的 malloc和 C++ 中的new有什么區(qū)別 -
8 寫一個(gè) “標(biāo)準(zhǔn)”宏MIN -
9 ++i和i++的區(qū)別 -
10 volatile有什么作用 -
11 一個(gè)參數(shù)可以既是 const又是volatile嗎 -
12 a和&a有什么區(qū)別 -
13 用 C 編寫一個(gè)死循環(huán)程序 -
14 結(jié)構(gòu)體內(nèi)存對(duì)齊問題 -
15 全局變量和局部變量有什么區(qū)別?實(shí)怎么實(shí)現(xiàn)的?操作系統(tǒng)和編譯器是怎么知道的? -
16 簡(jiǎn)述 C、C++ 程序編譯的內(nèi)存分配情況 -
17 簡(jiǎn)述 strcpy、sprintf與memcpy的區(qū)別 -
18 請(qǐng)解析 (*(void (*)( ) )0)( )的含義 -
19 C語(yǔ)言的指針和引用和c++的有什么區(qū)別? -
20 typedef和define有什么區(qū)別 -
21 指針常量與常量指針區(qū)別 -
22 簡(jiǎn)述隊(duì)列和棧的異同 -
23 設(shè)置地址為 0x67a9的整型變量的值為0xaa66 -
24 編碼實(shí)現(xiàn)字符串轉(zhuǎn)化為數(shù)字 -
25 C 語(yǔ)言的結(jié)構(gòu)體和 C++ 的有什么區(qū)別 -
26 簡(jiǎn)述指針常量與常量指針的區(qū)別 -
27 如何避免“野指針” -
28 句柄和指針的區(qū)別和聯(lián)系是什么? -
29 new/delete與malloc/free的區(qū)別是什么 -
30 說一說 extern“C” -
31 請(qǐng)你來說一下 C++ 中 struct和class的區(qū)別 -
32 C++ 類內(nèi)可以定義引用數(shù)據(jù)成員嗎? -
33 C++ 中類成員的訪問權(quán)限 -
34 什么是右值引用,跟左值又有什么區(qū)別? -
35 面向?qū)ο蟮娜筇卣? -
36 說一說 c++ 中四種 cast轉(zhuǎn)換 -
37 C++ 的空類有哪些成員函數(shù) -
38 對(duì) c++ 中的 smart pointer四個(gè)智能指針:shared_ptr,unique_ptr,weak_ptr,auto_ptr的理解 -
39 說說強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 -
40 談?wù)勀銓?duì)拷貝構(gòu)造函數(shù)和賦值運(yùn)算符的認(rèn)識(shí) -
41 在 C++ 中,使用 malloc申請(qǐng)的內(nèi)存能否通過delete釋放?使用new申請(qǐng)的內(nèi)存能否用free? -
42 用 C++ 設(shè)計(jì)一個(gè)不能被繼承的類 -
43 C++ 自己實(shí)現(xiàn)一個(gè) String類 -
44 訪問基類的私有虛函數(shù) -
45 對(duì)虛函數(shù)和多態(tài)的理解 -
46 簡(jiǎn)述類成員函數(shù)的重寫、重載和隱藏的區(qū)別 -
47 鏈表和數(shù)組有什么區(qū)別 -
48 用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列的功能 -
49 vector的底層原理 -
50 vector中的reserve和resize的區(qū)別 -
51 ``vector 中的size和capacity`的區(qū)別 -
52 vector 中erase方法與algorithn中的remove`方法區(qū)別 -
53 vector迭代器失效的情況 -
54 正確釋放 vector的內(nèi)存(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不會(huì)失效? -
61 當(dāng)數(shù)據(jù)元素增多時(shí)(從 10000 到 20000), map的set的查找速度會(huì)怎樣變化? -
62 map 、set、multiset、multimap的特點(diǎn) -
63 為何 map和set的插入刪除效率比其他序列容器高,而且每次insert之后,以前保存的iter -
64 為何 map和set不能像vector一樣有個(gè)reserve函數(shù)來預(yù)分配數(shù)據(jù)? -
65 set的底層實(shí)現(xiàn)實(shí)現(xiàn)為什么不用哈希表而使用紅黑樹? -
66 hash_map與map的區(qū)別?什么時(shí)候用hash_map,什么時(shí)候用map? -
67 迭代器失效的問題 -
68 STL線程不安全的情況
公眾號(hào)回復(fù)“面試”,獲取pdf答案
點(diǎn)【在看】是最大的支持
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!





