在C語言中,可以通過以下兩種方法將二維數組作為參數傳遞給函數:
使用指針傳遞數組:
示例代碼如下:
void func(int (*arr)[M], int row, int col) {
// 使用指針操作來訪問數組元素
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main() {
int arr[N][M] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
int row = N;
int col = M;
// 將數組的首地址作為參數傳遞給函數
func(arr, row, col);
return 0;
}
使用一維數組傳遞數組:
示例代碼如下:
void func(int *arr, int row, int col) {
// 使用索引計算來訪問數組元素
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
printf("%d ", arr[i * col + j]);
}
printf("\n");
}
}
int main() {
int arr[N][M] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
int row = N;
int col = M;
// 將二維數組轉換為一維數組,并將數組的首地址作為參數傳遞給函數
func((int *)arr, row, col);
return 0;
}
這兩種方法都可以實現將二維數組作為參數傳遞給函數,選擇哪種方法取決于具體的需求和編程習慣。