第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

union在內(nèi)存中的表現(xiàn)形式?

union在內(nèi)存中的表現(xiàn)形式?

三國紛爭 2019-04-10 20:48:00
#includetypedefunion{intint_value;}union_value;intmain(void){inti=3;int*ip=&i;printf("%d\n",((union_value*)ip)->int_value);return0;}上面這段程序,我應該如何理解?union_value在內(nèi)存中的表現(xiàn)形式難道和int一樣?
查看完整描述

2 回答

?
小唯快跑啊

TA貢獻1863條經(jīng)驗 獲得超2個贊

作業(yè)吧?真實的代碼里沒有這么折騰的。
C語言的語法(強制類型轉換),只是語法上的限制(這種限制是為了方便寫代碼和不會出現(xiàn)不期望的錯誤)
typedefunion{
intint_value;
}union_value;
這個只是說union_value類型占了4個字節(jié)(32位系統(tǒng)),原因見wangdai的回答。然后int_vallue相對于這個變量的起始偏移為0.
那么,現(xiàn)在ip指向了某個內(nèi)存ip->int_value(不考慮強制類型轉換)就是相當于*(ip+0),為什么是+0,就是編譯器根據(jù)typedef推導出來的。
                            
查看完整回答
反對 回復 2019-04-10
?
白豬掌柜的

TA貢獻1893條經(jīng)驗 獲得超10個贊

union占用的內(nèi)存是它其中包含的最大的那個
比如下面的U占用的內(nèi)存和short一樣
unionU{
charc;
shortsi;
};
/*sizeof(U)==2*/
你的代碼里只有一個int所以它占用的內(nèi)存和int一樣,所以強制轉換后的結果也是正確的
                            
查看完整回答
反對 回復 2019-04-10
  • 2 回答
  • 0 關注
  • 277 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號