c语言二维数组做形参传递
时间: 2024-10-29 12:17:37 浏览: 17
C语言中二维数组作为函数参数来传递的三种方法
5星 · 资源好评率100%
在 C 语言中,二维数组作为形参传递给函数时,通常需要显式地指定每个维度的大小。这是因为 C 的函数调用规则并不支持直接传递动态大小的数组,特别是二维以上的数组。以下是处理二维数组的方式:
1. **传递指向数组首元素的指针**:
当你需要传递整个数组时,可以将数组名转换为指向数组第一个元素的指针。例如:
```c
void processArray(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 myArray[4][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12} };
processArray(myArray, 4);
}
```
在这个例子中,`arr` 是一个指向整型数组的一维指针,`rows` 参数告诉函数数组的实际行数。
2. **传递数组长度和列数作为额外参数**:
另外,你也可以选择传递数组的行数和列数作为额外的参数,这允许函数处理不同尺寸的数组:
```c
void processArray(int (*array)[3], int rows, int cols) {
// ...处理数组...
}
int main() {
int myArray[4][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12} };
processArray(myArray, 4, 3);
}
```
阅读全文