精華區beta Programming 關於我們 聯絡資訊
※ 引述《junshung@kkcity.com.tw (... (b) pic)》之銘言: > 謝謝你 ^^, 但我不太懂 int(*)[2] 這種宣告方式 (可能是我的書或我的理解太差了=.=) > 還有你的意思是說 int[2] (一維來說的話) 跟int*是同一種type囉 那又是為啥ㄋ? int (*) [2] 這種 type 的意思, 是表示被宣告物是一個 pointer, 它所指向的目標是一個 array, 這個 array 內含 2 個 elements。 至於 pointer 和 array 本身並非同一種 type, 而是當你只寫出 array 名稱時, 它會被轉型為一個 pointer, 這個 pointer 會指向此 array 第一維度第一個元素的起始位址。 換句話說當你寫成這樣時: int array[2][3]; 那麼下面這兩行是一樣的意思(事實上無論是幾維都成立): ... = array; ... = &array[0]; 其中你的 array[0] 會是一個內含 3 個 elements 的一維陣列, 所以指向它的 pointer 其 type 就應為 int (*) [3], 道理一樣是從一維的概念推上來的, 只是 type 的寫法你比較不熟悉罷了, 同樣的道理也能推至 N 維陣列上。 -- Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net School: National Tsing Hua University Department: Computer Science Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design Researching: Undecided Homepage: https://it.muds.net/~uranus -- ╔═══╗ ┼────────────────────────╮ 狂狷 Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮ 年少 ┼╮ < IP:140.119.164.252 > ╰─╮ ╚╦═╦╝ From:61-230-224-108.dynamic.hinet.net ─╨─╨─ KGBBS 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩