[理工] 中正資結

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

Links booklink

Contact Us: admin [ a t ] ucptt.com