[問題] C語言的問題

看板Programming作者 (小黑)時間10年前 (2014/06/26 22:57), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/3 (看更多)
不好意思前面省略 int i; int *ptr; int array[3][4] = {{10,11,12,13},{4,5,6,7},{18,19,20,21}}; ptr = (int*)array; printf("%d\n",array[1][2]); ptr++; printf("%d\n",*ptr); printf("%d\n%d\n",(*(array+1))[1],*((array+1)[1])); ptr++; printf("%d\n",*ptr); 最後會印出 5 11 5 18 12 想請問 printf("%d\n%d\n",(*(array+1))[1],*((array+1)[1])); 這邊怎麼會印出5和18的.... 看不懂= = 跪求高人幫忙 謝謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.121.214.143 ※ 文章網址: http://www.ptt.cc/bbs/Programming/M.1403794648.A.19F.html

06/26 23:08, , 1F
第一個應該是6吧?
06/26 23:08, 1F

06/26 23:13, , 2F
其實你可以print %p直接觀察記憶體位置
06/26 23:13, 2F
文章代碼(AID): #1Jh3JO6V (Programming)
文章代碼(AID): #1Jh3JO6V (Programming)