[問題] pointer 和 陣列

看板C_and_CPP作者 (真人)時間16年前 (2010/01/31 04:22), 編輯推噓15(1507)
留言22則, 14人參與, 最新討論串1/1
請問 int (*us)[2] 要怎麼解釋, 我知道和 int *us[2] 不同 這是我見過的例子,但不太理解 int ts[3][2] = { {1,2}, {3,4}, {5,6} }; int (*us)[2] = ts; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 71.198.44.240

01/31 10:42, , 1F
int *us[2] 是兩個指向int*的指標
01/31 10:42, 1F

01/31 10:42, , 2F
int(*us)[2]是指向 int[?][2]的指標
01/31 10:42, 2F

01/31 11:00, , 3F
括號優先權最高,最先作用在識別項上面,背一百遍。
01/31 11:00, 3F

01/31 11:04, , 4F
括號優先權最高,最先作用在識別項上面。 001
01/31 11:04, 4F

01/31 11:16, , 5F
括號優先權最高,最先作用在識別項上面。 002
01/31 11:16, 5F

01/31 11:20, , 6F
括號優先權最高,最先作用在識別項上面。 003
01/31 11:20, 6F

01/31 11:43, , 7F
括號優先權最高,最先作用在識別項上面。 004
01/31 11:43, 7F

01/31 12:01, , 8F
括號優先權最高,最先作用在識別項上面。 005
01/31 12:01, 8F

01/31 12:29, , 9F
括號優先權最低,最後作用在識別項上面。(咦?) 006
01/31 12:29, 9F

01/31 14:13, , 10F
號優先權最低,最後作用在識別項上面。(一起玩~) 007
01/31 14:13, 10F

01/31 14:44, , 11F
馬尾優先權最高,最先作用在識別項上面。(恩)
01/31 14:44, 11F

01/31 15:28, , 12F
馬__優先權最高,最先作用在______上面。(>///<) 009
01/31 15:28, 12F

01/31 15:34, , 13F
樓上...0.0
01/31 15:34, 13F

01/31 15:40, , 14F
int(*us)[2]是指向 int[2]的指標
01/31 15:40, 14F

01/31 17:10, , 15F
二樓解釋也能說得通啦。畢竟 C++ 陣列 如int arr[3][2];
01/31 17:10, 15F

01/31 17:11, , 16F
就是三個 int[2] 依序成一排。如果令 us=arr;
01/31 17:11, 16F

01/31 17:12, , 17F
那 arr+1 得到的記憶體位址,跟 us+1 會一樣。
01/31 17:12, 17F

01/31 17:46, , 18F
int (*us)[2],指向2個int之陣列的指標;
01/31 17:46, 18F

01/31 17:46, , 19F
int *us[2],2個指向int*(int指標)的陣列;
01/31 17:46, 19F

02/01 11:06, , 20F
02/01 11:06, 20F

02/01 11:06, , 21F
right-left rule 用在這也是通的
02/01 11:06, 21F

02/01 11:10, , 22F
a大那篇有屌到, 在這邊推一下:D
02/01 11:10, 22F
文章代碼(AID): #1BP9JkF6 (C_and_CPP)