看板 Grad-ProbAsk 關於我們 聯絡資訊
https://imgur.com/YIjeBpT 想請問這種題目要怎麼去想才能解出... 不太清楚方向 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.55.164 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1543131613.A.601.html
skyHuan: list是地址的數值,而*list是在地址裡面的資料,list就是 11/25 16:59
skyHuan: 整個array的起始位址,也就是list[0]的地址 11/25 16:59
skyHuan: 如果array[0]的地址是100,那array + 1 = 101 11/25 17:05
skyHuan: 而地址的+1是加上代表那個array的一個"元素"大小 11/25 17:05
skyHuan: 所以*(array+1)是只起始位址加一個元素大小 11/25 17:05
skyHuan: 假設是double的陣列,一個元素佔8個byte,就是要找108地 11/25 17:05
skyHuan: 址裡面的元素,也就是要找array[1]裡面的元素是什麼 11/25 17:05
skyHuan: 應該是這樣,有說錯再請其他人補充XD 11/25 17:05
plsmaop: 用c99的編譯器編譯看看,多試幾次大概就知道是怎樣的規 11/26 09:35
plsmaop: 律了 11/26 09:35
plsmaop: 一個double是8byte 11/26 09:37
plsmaop: https://bit.ly/2FDH1cQ 11/26 09:41
b0920075: 第一題代數字進去,第二題double 8byte 所以起始位置 + 11/26 10:59
b0920075: 目錄乘以八 11/26 10:59
b0920075: 第三樓的回答我看到一開始會錯意XDD 11/26 11:00
skyHuan: 所以我說的是錯的嗎>< 是講相反了嗎QQ 11/26 11:26
skyHuan: 我好像說錯了,地址變數加都是加一個元素的大小,所以上 11/26 12:33
skyHuan: 面舉的例子要改成如果array[0]的地址是100,那array + 1 11/26 12:33
skyHuan: = 108,有測試了一小段扣的可以參考 11/26 12:33
skyHuan: https://pastebin.com/iXBFr4L3 11/26 12:33
st945712: 不好意思可以問一下這題的解答嗎?? 11/26 15:01
st945712: 身邊沒有電腦讓我直接trace一次QQ 想知道答案 11/26 15:03
skyHuan: 上面code的註解有寫出答案唷 (A) 9.6. (B) 0x456749 11/26 15:13
Dora5566: 表示他們要刷掉沒寫過程式的 11/26 16:05
Dora5566: 中字輩都蠻愛給code,考你output,最好花時間寫一下C或Ja 11/26 16:09
Dora5566: va 11/26 16:09
aggress5566: 他上面題目是什麼 我看addressing似乎不是32 bits 11/26 19:16
aggress5566: double 直接斷定是8 搞不好會被扣點分 11/26 19:16
Dora5566: 樓上提醒了 這是24bit 11/26 22:17
TEPLUN: 456749是32bit的答案吧 如果是24bits 是456759? 11/27 12:29
b0920075: 我以為地址是隨便設的... 11/27 14:41
b0920075: 我以為三樓的例子是拿char array當例子 XDD 11/27 14:42
aggress5566: 看起來一定是隨便設阿XDD 我的話我會寫sizeof 11/27 23:25
rex51920594: 感謝各位Q_Q 12/03 19:54