推 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
推 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
推 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