C 二維陣列的引數傳遞與二維指標

2021-08-20 07:05:04 字數 920 閱讀 7863

二維陣列的變數名是一維指標的指標,指標的步長是已知的,一維指標的長度需要在傳遞引用的過程中顯式標出,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型別...