精華區beta Programming 關於我們 聯絡資訊
要問一題題目 這一題我是都寫對 但總覺得哪裡不太對勁 而且解法不知對不對 想請教各位指點一下 謝謝!! 如下: int *ptr,t1,t2,a[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; ptr=&a[2][2]; t1=*ptr++; t2=*(ptr-3); 它題目是要問t1、t2=? 我的解法: 因為a沒說是列優先還是行優先 a陣列會有二種可能性 0 1 2 3 0 1 2 3 1 2 3 4 1 4 7 10 ? 5 6 7 8 ? 2 5 8 11 9 10 11 12 3 6 9 12 (列) (行) ptr = a[2][2] 會有多種可能性(因為a的列值不確定為何?) 在列優先裡因為不知2是哪一列 所以有可能為 3、7、11 的address(第2行所有值) 在行... .. ... .. 7、8、9 ... ... *ptr = 3、7、11 7、8、9 而t1=*ptr++ 所以 t1的值有可能為=5、9、13 ; 9、10、11 這題是選擇題 (a)7 (b)25 (c)45 (d)9 (e)none of above 答案是(d)9 我t1是這樣算出來的 而t2=*(ptr-3); ptr為指向3、7、11的address即 2、6、10 7、8、9 的address即 6、7、8 分別-3後 -1、3、7 3、4、5 所以t2的值可能為 3、4、5、7 這題選項和求t1的選項一樣 而答案是(a)7 到這邊為止 這樣解法有沒有什麼地方不妥?還是有其他解法呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.166.160.228 ※ 編輯: xfuns 來自: 218.166.160.228 (02/10 15:35)