若有如下說明和定義struct test{ int ml; char m2; float m3; union uu {char ul[5]; int u2[2]
若有如下說明和定義struct test{ int ml; char m2; float m3; union uu {char ul[5]; int u2[2];} ua;} myaa;則sizeof(struct test)的值是A.12 B.16 C.14 D.9
正確答案:A在本題中,首先定義了一個結(jié)構(gòu)體。在該結(jié)構(gòu)體中,定義了一個整型變量成員、一個字符型變量成員和一個浮點型變量成員,并在結(jié)構(gòu)體中定義了一個聯(lián)合體變量成員,聯(lián)合體變量成員中又包含兩個聯(lián)合體成員數(shù)組。題目最后要求計算該結(jié)構(gòu)體變量所占的存儲空間。在C語言中,聯(lián)合體變量中的所有成員共享存儲空間,聯(lián)合變量的長度等于各成員中最長的長度,因此,本題的聯(lián)合體部分所占的長度為5,但是結(jié)構(gòu)體與聯(lián)合體不一樣的是,結(jié)構(gòu)體不能共享空間,一個結(jié)構(gòu)體變量的總長度是各成員長度之和,因此,該結(jié)構(gòu)體所需的存儲空間為5+1+2+4=12。本題的正
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。