c语言二维数组在函数里面
时间: 2024-06-13 18:06:31 浏览: 118
array_wrapper.tar.gz_c二维数组
C语言中二维数组可以作为函数参数来传递,以下是三种常见的方法:
1.指定列数的二维数组作为函数参数
```c
void func(int arr[][3], int row) {
for(int i=0; i<row; 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;
}
```
2.一维数组作为函数参数
```c
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[2][3] = {{1,2,3}, {4,5,6}};
func(&arr[0][0], 2, 3);
return 0;
}
```
3.动态分配内存的二维数组作为函数参数
```c
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][j]);
}
printf("\n");
}
}
int main() {
int **arr;
int row = 2, col = 3;
arr = (int **)malloc(row * sizeof(int *));
for(int i=0; i<row; i++) {
arr[i] = (int *)malloc(col * sizeof(int));
for(int j=0; j<col; j++) {
arr[i][j] = i*col+j+1;
}
}
func(arr, row, col);
return 0;
}
```
阅读全文