※ 引述《weber.bbs@cis.nctu.edu.tw (水月靜心)》之銘言:
: 一維陣列只要如下就可以
: 那二維陣列呢?
: 謝謝大家的指教
: test(int* a)
: {.....}
: main()
: {
: test(A)
: }
Example
void test(char [][5]);
void main()
{
int Array[12][5];
test(Array);
}
void test(char tmp[][5])
{ ........
}
其中 char [][5]; 的第一個 [] 是對 Array 的 12 組資料而言 (每一組5元素)
基本上這些元數的位置都是相連的
所以必須給訂每一組的元素數量
看成一線性關係
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 ......
| | | | | | | |
+------------+ +------------+ +------------+ +------------+
Array[0][0] Array[1][0] Array[2][0] Array[3][0] .....
| | | |
Array[0][4] Array[1][4] Array[2][4] Array[3][4] .....
從這一點也可看出為什麼要指定 [5]
這樣編譯器才知道每一組數量多少
另外
tmp 是每一組第一個元素位置儲存的陣列的位置
*tmp 是第一組陣列的第一個元素的位置 ( tmp[] )
**tmp 是第一組第一個元素的值 ( tmp[][] )
--
※ 作者來自: fhnews.v1.dorm.ncku.edu.tw
Origin: 私立輔英技術學院 輔英天使BBS站 bbs.fy.edu.tw(140.127.86.240)