Re: [問題] C的新手發問
※ 引述《pubp (猛欽)》之銘言:
: 今天遇到一個題目
: 宣告byte A[10]={1,2,....,10}
: 並宣告 Uint16 *AA
: AA=(Uint16*)A;
: 請問 AA[1]=?
: 這裡我不了解的是Uint16
: 請問答案是什麼?
推文有解釋 byte和Uint16的區別。
針對AA[1]解決一下好了,
宣告一個byte陣列,在記憶體中攤成二進位來看就是
A[0] A[1] A[2] A[3]
00000001 00000010 00000011 00000100 ........
A表示一個byte大小的指標,現在硬把他擴充成Uint16
然後assign給AA。
所以就變成
AA[0] AA[1] ........
00000001 00000010 00000011 00000100 ........
所以AA[1]以就是772(10)。
補充:
我真的忽略了 little endian和 big endian的差別了 XD
上述是big endian的狀況,如果是little endian的話就變
成原文推文說的1027(10)了。
intel系的電腦應該都是little endian。
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.171.136.7
推
05/19 22:25, , 1F
05/19 22:25, 1F
推
05/19 22:25, , 2F
05/19 22:25, 2F
→
05/19 22:26, , 3F
05/19 22:26, 3F
→
05/19 22:29, , 4F
05/19 22:29, 4F
※ 編輯: syntex 來自: 118.171.136.7 (05/19 22:38)
推
05/20 01:39, , 5F
05/20 01:39, 5F
※ 編輯: syntex 來自: 220.228.236.56 (05/20 08:54)
推
05/20 13:28, , 6F
05/20 13:28, 6F
→
05/20 13:30, , 7F
05/20 13:30, 7F
推
05/20 13:30, , 8F
05/20 13:30, 8F
推
05/20 14:18, , 9F
05/20 14:18, 9F
推
05/20 14:37, , 10F
05/20 14:37, 10F
推
05/20 14:43, , 11F
05/20 14:43, 11F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章