二維陣列的變數名是一維指標的指標,指標的步長是已知的,一維指標的長度需要在傳遞引用的過程中顯式標出,void transpose(int mat[3], int row) 不可簡化為void transpose(int mat, int row)
#include
void transpose(int mat[3], int row)
}}int main(void)
}transpose(mat, row);
for(int i=0; ifor(int j=0; jprintf("%d", mat[i][j]);
if(j==2) printf(" \n");
else
printf(" ");}}
return
0;}
有的時候我們希望子函式可以接受任意長寬的二維陣列,此時上述方法因為必須標出第二維的寬度,便有侷限性,可以採用以下方法:
#include
void transpose(int** mat, int row)
}}int main(void)
}transpose(mat, row);
for(int i=0; ifor(int j=0; jprintf("%d", mat[i][j] );
if(j==2) printf(" \n");
else
printf(" ");}}
return
0;}
初始化可採用以下方法
float **mat=new
float *[3];//開闢行空間
for(int i=0;i<3;i++)
mat[i]=new
float[i];//開闢列空間
C C 二維陣列的引數傳遞與二維指標
在進行函式引數傳遞的時候,常常需要把一組資料傳遞給函式,我們知道一維陣列在進行函式引數傳遞的時候,以陣列名作為形參就可以,因為陣列名就表示該陣列的首位址,在函式內部也直接可以用符號訪問。那麼二維陣列的值該如何傳遞呢?其實它可以像一維陣列那樣以陣列名作為形參和實參,也可以使用二級指標來進行傳遞,常用的...
二維陣列與二維指標
1.二維陣列的儲存是線性的,可以通過一維指標的方式訪問。如一下 int map 5 5 int mapd map 0 0 則 map i j mapd i 5 j 而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞 如 將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指...
二維陣列與二維指標
一.指標與二維陣列 以martix 3 4 為例 1.二維陣列的本質 int martix 3 4 int martix 3 4 int 4 martix 3 令int 4 為type,type martix 3 為含有三個元素的陣列,每乙個元素型別為int 4 int 4 是乙個擁有4個int型別...