描述結(jié)構(gòu)體對(duì)齊規(guī)則
1. 數(shù)組成員對(duì)齊規(guī)則。第一個(gè)數(shù)組成員應(yīng)該放在offset為0的地方,以后每個(gè)數(shù)組成員應(yīng)該放在offset為min(當(dāng)前成員的大小,#pargama pack(n))整數(shù)倍的地方開始(比如int在32位機(jī)器為4字節(jié),#pargama pack(2),那么從2的倍數(shù)地方開始存儲(chǔ))。
2. 結(jié)構(gòu)體總的大小,也就是sizeof的結(jié)果,必須是min(結(jié)構(gòu)體內(nèi)部最大成員,#pargama pack(n))的整數(shù)倍,不足要補(bǔ)齊。
3. 結(jié)構(gòu)體做為成員的對(duì)齊規(guī)則。如果一個(gè)結(jié)構(gòu)體B里嵌套另一個(gè)結(jié)構(gòu)體A,還是以最大成員類型的大小對(duì)齊,但是結(jié)構(gòu)體A的起點(diǎn)為A內(nèi)部最大成員的整數(shù)倍的地方。(struct B里存有struct A,A里有char,int,double等成員,那A應(yīng)該從8的整數(shù)倍開始存儲(chǔ)。),結(jié)構(gòu)體A中的成員的對(duì)齊規(guī)則仍滿足原則1、原則2。
如何理解結(jié)構(gòu)體的淺拷貝與深拷貝
當(dāng)結(jié)構(gòu)體中有指針成員的時(shí)候容易出現(xiàn)淺拷貝與深拷貝的問(wèn)題。
淺拷貝就是,兩個(gè)結(jié)構(gòu)體變量的指針成員指向同一塊堆區(qū)空間,在各個(gè)結(jié)構(gòu)體變量釋放的時(shí)候會(huì)出現(xiàn)多次釋放同一段堆區(qū)空間
深拷貝就是,讓兩個(gè)結(jié)構(gòu)體變量的指針成員分別指向不同的堆區(qū)空間,只是空間內(nèi)容拷貝一份,這樣在各個(gè)結(jié)構(gòu)體變量釋放的時(shí)候就不會(huì)出現(xiàn)多次釋放同一段堆區(qū)空間的問(wèn)題
描述枚舉
關(guān)鍵字enum,將枚舉變量將要賦值的值 一一用符號(hào)常量(枚舉值)列舉出來(lái)。枚舉變量盡量賦值為給定的符號(hào)常量(枚舉值)
描述共有體
以關(guān)鍵字union修飾,共有體又叫聯(lián)合體,共有體中的成員共享同一塊內(nèi)存空間。
內(nèi)存空間總大小由共用體中最大的成員類型決定,每個(gè)成員能夠操作的空間大小是由成員自身類型大小決定
描述結(jié)構(gòu)體
以關(guān)鍵字struct修飾,結(jié)構(gòu)體中的成員擁有各自獨(dú)立的空間,按照(結(jié)構(gòu)體對(duì)齊規(guī)則)存儲(chǔ)在內(nèi)存中
結(jié)構(gòu)體中的成員類型可以不同
結(jié)構(gòu)體與共用體的區(qū)別
結(jié)構(gòu)體中的成員擁有獨(dú)立的空間,共用體的成員共享同一塊空間,但是每個(gè)共用體成員能訪問(wèn)共用區(qū)的空間大小是由成員自身的類型決定
結(jié)構(gòu)體變量初始化時(shí)需要注意啥
結(jié)構(gòu)體變量的初始化 必須遵循結(jié)構(gòu)體成員的順序以及成員的自身類型
談?wù)勀銓?duì)結(jié)構(gòu)體數(shù)組的理解
結(jié)構(gòu)體數(shù)組:本質(zhì)是數(shù)組,數(shù)組的每個(gè)元素為結(jié)構(gòu)體變量。
談?wù)勀銓?duì)結(jié)構(gòu)體位域的理解
在結(jié)構(gòu)體中,以位為單位的成員,咱們稱之為位段(位域)
不能對(duì)位域取地址
對(duì)位域賦值 不要超過(guò) 位域本身位的寬度
談?wù)勀銓?duì)鏈表的理解
鏈表是由一個(gè)個(gè)節(jié)點(diǎn)組成,節(jié)點(diǎn)沒(méi)有名字,每個(gè)節(jié)點(diǎn)從堆區(qū)動(dòng)態(tài)申請(qǐng),節(jié)點(diǎn)間物理上是非連續(xù)的,但是每個(gè)節(jié)點(diǎn)通過(guò)指針域 保存下一個(gè)節(jié)點(diǎn)的位置 達(dá)到邏輯上連續(xù)
談?wù)剶?shù)組和鏈表的不同點(diǎn)
數(shù)組通過(guò)下標(biāo)能夠快速遍歷數(shù)組的每個(gè)元素(訪問(wèn)效率高),但是當(dāng)數(shù)組插入或刪除數(shù)據(jù)時(shí)需要移動(dòng)大量的數(shù)據(jù)(插入刪除效率低)
鏈表通過(guò)指針域逐個(gè)節(jié)點(diǎn)的訪問(wèn)數(shù)據(jù)(訪問(wèn)效率低),但是當(dāng)鏈表插入或刪除節(jié)點(diǎn)不需要移動(dòng)節(jié)點(diǎn)(插入刪除效率高)
更多關(guān)于物聯(lián)網(wǎng)培訓(xùn)的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗(yàn),采用全程面授高品質(zhì)、高體驗(yàn)培養(yǎng)模式,擁有國(guó)內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實(shí)現(xiàn)高薪夢(mèng)想。