在C語言中,可以通過指針來傳遞二維數組。以下是兩種常見的方式:
void func(int (*arr)[3], int rows) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main() {
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
func(arr, 2);
return 0;
}
void func(int **arr, int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main() {
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
int *ptr[2] = {arr[0], arr[1]};
func(ptr, 2, 3);
return 0;
}
注意:在第二種方式中,需要將二維數組轉換為指針數組,即將二維數組的每一行的首地址存放在指針數組中。