二维数组作为函数参数的调用
时间: 2024-11-13 11:04:01 浏览: 18
在C语言中,当你需要将二维数组作为函数参数传递时,可以采取几种方法,取决于函数对数组的操作以及你希望如何控制数组的数据独立性:
1. **指针传参**:
- 声明一个指向数组首元素的指针(即指向二维数组的第一维数组)。
```c
void process(int (*array)[cols], int rows); // 参数是一个指向整型数组的指针,rows是每行的元素数
```
函数内部通过指针间接访问二维数组。
2. **数组名直接传参**:
- 如果函数内部不需要修改数组本身,可以直接传递二维数组名,它等价于指针传递。
```c
void print_matrix(const int matrix[rows][cols]); // const表明函数不会修改数组
```
3. **结构体或联合体**:
- 创建一个结构体或联合体来包装二维数组,然后作为参数传递。
```c
typedef struct {
int data[rows][cols];
} ArrayStruct;
void process(ArrayStruct arr);
```
**示例**:
```c
void display_array(const int matrix[rows][cols]) {
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
int my_matrix[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} };
display_array(my_matrix);
return 0;
}
```
阅读全文