物聯(lián)網(wǎng)嵌入式學(xué)習(xí)的內(nèi)容繁雜,很多小伙伴在準(zhǔn)備物聯(lián)網(wǎng)面試的時(shí)候,面對(duì)眾多知識(shí)點(diǎn)無(wú)從下手。小千在此為大家整理了物聯(lián)網(wǎng)面試題集錦—C++語(yǔ)言篇,希望能夠幫助大家順利通關(guān)!
C++語(yǔ)言篇
1、談?wù)勀銓?duì)命名空間的理解
namespace 是?個(gè)關(guān)鍵字:隨著?程量的增加,變量命名上不可避免的會(huì)出現(xiàn)重名,防止名稱(chēng)沖突。
(在兩個(gè)不同的命名空間中,即使2個(gè)變量名相同,也是2個(gè)不同的變量),在實(shí)際工作中,基本都使用標(biāo)準(zhǔn)命名空間。
命名空間只能全局范圍內(nèi)定義,不能定義在函數(shù)內(nèi)部。
命名空間內(nèi),可以存放 變量、函數(shù)、結(jié)構(gòu)體、類(lèi) ;也可以嵌套其他的命名空。
命名空間可以匿名(但?般不這樣使?),類(lèi)似靜態(tài)全局變量。
命名空間是可以起別名.
2、談?wù)勚羔樅鸵?的區(qū)別
引用是給變量起別名,內(nèi)部實(shí)現(xiàn)是指針常量(int* const ref = &a),其可以簡(jiǎn)單的理解為本體指
針存放的是變量的地址
引用的本質(zhì)是指針常量,其指向不可修改,而指針可以改變指向
引用創(chuàng)建的同時(shí)必須初始化,指針創(chuàng)建的時(shí)候可以不必初始化
引用不能為空,指針可以為 NULL
“引用變量 ref”的內(nèi)存單元保存的是“被引用變量 a”的地址 sizeof(引用) = 指向變量的大小 sizeof(指針) = 指針本身的大小
引用使用的時(shí)候無(wú)需解引用,指針需要解引用
指針和引用“自增/自減運(yùn)算”意義不?樣
在同等需求下,函數(shù)傳參,引用可以將?級(jí)指針
3、談?wù)勀銓?duì)內(nèi)聯(lián)函數(shù)的理解
(1)宏函數(shù)的缺陷:
需要加括號(hào)實(shí)現(xiàn),以保證優(yōu)先級(jí)的完整性。
即使加了括號(hào),有些情況依然有缺陷。
(2)在普通函數(shù)前面加上inline關(guān)鍵字使其成為內(nèi)聯(lián)函數(shù);
(3)內(nèi)聯(lián)函數(shù)本身是一個(gè)函數(shù),宏函數(shù)不是;
(4)內(nèi)聯(lián)函數(shù)具有普通函數(shù)所有的行為 唯一不同之處在于 :內(nèi)聯(lián)函數(shù)會(huì)在適當(dāng)?shù)牡胤较蚝旰瘮?shù)一樣展開(kāi),可以以空間換時(shí)間,內(nèi)聯(lián)函數(shù)即可以避免宏函數(shù)的缺陷,又可以避免普通函數(shù)入棧時(shí)的時(shí)間浪費(fèi);
(5)在任何類(lèi)內(nèi)定義的函數(shù)自動(dòng)成為內(nèi)聯(lián)函數(shù);
(6)下列情況,普通函數(shù)即使指定為內(nèi)聯(lián)函數(shù),編譯器也可能考慮不按內(nèi)聯(lián)編譯 a、存在任何形式的循環(huán)語(yǔ)句 b、存在過(guò)多的條件判斷語(yǔ)句c、函數(shù)體過(guò)于龐? d、對(duì)函數(shù)進(jìn)?取址操作;
(7)a、內(nèi)聯(lián)僅僅只是給編譯器?個(gè)建議,編譯器不?定會(huì)接受這種建議;b、如果你沒(méi)有將函數(shù)聲明為內(nèi)聯(lián)函數(shù),那么編譯器也可能將此函數(shù)做內(nèi)聯(lián)編譯(?個(gè)好的編譯器將會(huì)內(nèi)聯(lián)小的、簡(jiǎn)單的函數(shù))因此,不用刻意使用內(nèi)聯(lián)函數(shù),可以交給編譯器去自行處理。
更多關(guān)于“物聯(lián)網(wǎng)培訓(xùn)”的問(wèn)題,歡迎咨詢(xún)千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬(wàn)人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來(lái)試聽(tīng)。