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