[問題]指標指向二維陣列

看板C_and_CPP (C/C++)作者 (波波)時間16年前 (2009/07/19 17:15), 編輯推噓3(304)
留言7則, 2人參與, 最新討論串1/1
請問我程式這樣寫 int a[10][10]; int *ptr = a; 為什麼編譯一直錯誤??寫cannot convert 我查過書,書上就這樣寫,照理說應該是OK的 我用一維矩陣這樣寫也OK但換二維不行了 Why? 還是指標指向二維陣列有其他用法?? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.124.81.131

07/19 17:19, , 1F
int (*ptr)[10] = a; 或 int (&ptr)[10][10] = a;
07/19 17:19, 1F

07/19 17:24, , 2F
因為一維跟二維是不同資料型態,而『C++』會檢查資料型態
07/19 17:24, 2F

07/19 17:27, , 3F
請問那c和c++用法是一樣的嗎?如果用c的話有別的用法嗎?
07/19 17:27, 3F

07/19 17:28, , 4F
因為這用法跟書上寫的不太一樣有點搞不清是如何運作
07/19 17:28, 4F

07/19 17:29, , 5F
用法一樣,只是C的編譯器沒有強制規定 = 兩邊的資料型態要相同
07/19 17:29, 5F

07/19 17:29, , 6F
int *ptr = (int *)a; 這樣就會轉換 a 的資料型態了
07/19 17:29, 6F

07/19 17:36, , 7F
感謝大大
07/19 17:36, 7F
文章代碼(AID): #1AOkGwYb (C_and_CPP)
文章代碼(AID): #1AOkGwYb (C_and_CPP)