1. 程式人生 > >一維指標和陣列,二維指標和陣列

一維指標和陣列,二維指標和陣列

在函式傳參時候,陣列名作為引數,自動轉成指標,那麼二維陣列可不可以這樣做呢。void fun(int **a,int i,int j){int m = i*j;for (int i = 0; i < m; i++){cout << *(a[0] + i)<<endl;}}int main(){int a[3][2] = { { 1, 2, }, { 3, 4 }, { 5, 6 } }; fun(a,3,2);//錯誤a和int**a 不是一個型別system("pause");return 0;}要想通過要把引數部分改為:int (*a)[2]。為什麼這樣呢,int a[10];a是一個有10個數的陣列,a代表陣列首地址。賦給引數,預設轉換為指標。inta[2][3];a是一個大小為2的陣列,陣列的元素是大小為3的陣列,把a賦給引數a成為大小為2的陣列的首地址,後面的不變就成int(*p)[3];所以才能匹配。