免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
C++筆試面試準(zhǔn)備(整理)
轉(zhuǎn)載:https://blog.csdn.net/ljh0302/article/details/81098764?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161494999616780262523772%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=161494999616780262523772&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-1-81098764.first_rank_v2_pc_rank_v29_10&utm_term=C%2B%2B%E7%AC%94%E8%AF%95%E9%9D%A2%E8%AF%95%E9%A2%98
1、C++中指針與引用的區(qū)別
1)指針是一個新的變量,存儲了另一個變量的地址,我們可以通過訪問這個地址來修改另一個變量;
引用只是一個別名,還是變量本身,對引用的任何操作就是對變量本身進(jìn)行操作,以達(dá)到修改變量的目的
2)引用只有一級,而指針可以有多級
3)指針傳參的時候,還是值傳遞,指針本身的值不可以修改,需要通過解引用才能對指向的對象進(jìn)行操作。
引用傳參的時候,傳進(jìn)來的就是變量本身,因此變量可以被修改。
2、結(jié)構(gòu)體(struct):
將不同類型的數(shù)據(jù)組合成一個整體,sizeof(struct)是內(nèi)存對齊后所有成員長度的總和。
3、內(nèi)存對齊:(轉(zhuǎn)自:http://www.pinlue.com/article/2021/01/2100/0011500966600.html)
intshortlongcharcahr*floatdouble
32位4241448
64位4281848
例1:(假設(shè)指定對齊字節(jié)為8,那么n = min(8,4) = 4)
class node{ int i; //放在位置0,位置區(qū)間[0~3] char c; //1 < n, 那么放置起始位置應(yīng)該是1的倍數(shù),即4,位置區(qū)間為[4] short s; //2 < n,那么放置起始位置應(yīng)該是2的倍數(shù),即6,位置區(qū)間為[6~7]}
成員共占據(jù)[0~7]8個字節(jié),剛好是4的倍數(shù),因此大小是8
例2:(假設(shè)指定對齊字節(jié)是2,則n = min(2,4) = 2)
class node{ char c; //放在位置0,位置區(qū)間[0] int i; //4 > n, 那么放置起始位置應(yīng)該是2的倍數(shù),即2,位置區(qū)間為[2~5] short s; //2 = n,那么放置起始位置應(yīng)該是2的倍數(shù),即6,位置區(qū)間為[6~7]}
此時成員共占用[0~7]8個字節(jié),剛好是4的倍數(shù),因此大小是8
4、#define和const的區(qū)別
1)#define定義的常量沒有類型,所給出的是一個立即數(shù);const定義的常量有類型名字,存放在靜態(tài)區(qū)域
2)處理階段不同,#define定義的宏變量在預(yù)處理時進(jìn)行替換,可能有多個拷貝,const所定義的變量在編譯時確定其值,只有一個拷貝。
3)#define定義的常量是不可以用指針去指向,const定義的常量可以用指針去指向該常量的地址
4)#define可以定義簡單的函數(shù),const不可以定義函數(shù)
5、重載:同一類中,函數(shù)名相同,參數(shù)和返回值不同(相同范圍(同一個類中)、函數(shù)名字相同、參數(shù)不同、virtual關(guān)鍵字可有可無)
覆蓋:派生類覆蓋基類的虛函數(shù),實現(xiàn)接口的重用(不同范圍(基類和派生類)、函數(shù)名字相同、參數(shù)相同、基類中必須有virtual關(guān)鍵字(必須是虛函數(shù)))
重寫:派生類屏蔽了其同名的基類函數(shù)(不同范圍(基類和派生類)、函數(shù)名字相同、參數(shù)不同或者參數(shù)相同且無virtual關(guān)鍵字)
6、new、delete、malloc、free之間的關(guān)系
new/delete,malloc/free都是動態(tài)分配內(nèi)存的方式
1)malloc對開辟的空間大小嚴(yán)格指定,而new只需要對象名
2)new為對象分配空間時,調(diào)用對象的構(gòu)造函數(shù),delete調(diào)用對象的析構(gòu)函數(shù)
既然有了malloc/free,C++中為什么還需要new/delete呢?
因為malloc/free是庫函數(shù)而不是運算符,不能把執(zhí)行構(gòu)造函數(shù)和析構(gòu)函數(shù)的功能強加于malloc/free.
7.STL庫:(轉(zhuǎn)載:https://blog.csdn.net/qq_41431457/article/details/88898925)
STL(Standard Template Library),即標(biāo)準(zhǔn)模板庫,是一個具有工業(yè)強度的,高效的C++程序庫。
vector:是支持隨機訪問的迭代器
vector的動態(tài)增加大小的時候,并不是在原有的空間上持續(xù)新的空間(無法保證原空間的后面還有可供配置的空間),而是以原大小的兩倍另外配置一塊較大的空間,然后將原內(nèi)容拷貝過來,并釋放原空間。在VS下是1.5倍擴容,在GCC下是2倍擴容。
#include<iostream>#include<vector>using namespace std;//iterator模式:提供一種方法,使之能依次訪問容器內(nèi)的各個元素,而又不暴露該聚合物內(nèi)部的表述方式。 void print(vector<int>&v){ for(vector<int>::iterator i=v.begin();i!=v.end();i++){ cout<<*i<<" "; } cout<<endl;}//四種定義方法 void test01(){ vector<int>v1; for(int i=0;i<10;i++){ v1.push_back(i); } print(v1); vector<int>v2(v1.begin(),v1.end()); print(v2); vector<int>v3(10,100); print(v3); vector<int>v4(v3); print(v4); //賦值 opertor= vector<int>v5; v5=v1; print(v5); //assign賦值 vector <int>v6; v6.assign(v1.begin(),v1.end()); print(v6); vector <int>v7; v7.assign(10,1);//10個1 print(v7); //插入,第一個參數(shù)是迭代器 v7.insert(v7.begin(),1000) ; print(v7); v7.insert(v7.begin(),3,11111000) ; print(v7); }int main(){ test01(); return 0;}
8、const
const修飾類的成員變量,表示常量不可能被修改
const修飾類的成員函數(shù),表示該函數(shù)不會修改類中的數(shù)據(jù)成員,不會調(diào)用其他非const的成員函數(shù)
static:
12、關(guān)鍵字static的作用
1)函數(shù)體內(nèi): static 修飾的局部變量作用范圍為該函數(shù)體,不同于auto變量,其內(nèi)存只被分配一次,因此其值在下次調(diào)用的時候維持了上次的值
2)模塊內(nèi):static修飾全局變量或全局函數(shù),可以被模塊內(nèi)的所有函數(shù)訪問,但是不能被模塊外的其他函數(shù)訪問,使用范圍限制在聲明它的模塊內(nèi)
3)類中:修飾成員變量,表示該變量屬于整個類所有,對類的所有對象只有一份拷貝
4)類中:修飾成員函數(shù),表示該函數(shù)屬于整個類所有,不接受this指針,只能訪問類中的static成員變量
9.堆和棧的區(qū)別
堆heap低址-高址內(nèi)存手動釋放效率低函數(shù)的參數(shù)值、局部變量
棧stack 高-低自動效率高new
10、C++中的內(nèi)存管理
在C++中,內(nèi)存被分成五個區(qū):棧、堆、代碼區(qū)、全局/靜態(tài)存儲區(qū)、常量區(qū)
代碼區(qū):
棧:存放函數(shù)的參數(shù)和局部變量,編譯器自動分配和釋放
堆:new關(guān)鍵字動態(tài)分配的內(nèi)存,由程序員手動進(jìn)行釋放,否則程序結(jié)束后,由操作系統(tǒng)自動進(jìn)行回收
全局/靜態(tài)存儲區(qū):存放全局變量和靜態(tài)變量
常量區(qū):存放常量,不允許被修改
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C基礎(chǔ)—指針/指針與動態(tài)變量/指針與數(shù)組/指針與函數(shù)
各種指針分類總結(jié) + 指針間的賦值關(guān)系
C/C 指針詳解之提高篇
C語言和C++的區(qū)別
面試經(jīng)驗:68個C/C 常見面試題匯總(含答案)
C 知識點
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服