C语言不能将二维数组传入自定义函数吗
时间: 2024-12-25 13:30:02 浏览: 3
C语言中二维数组作为函数参数来传递的三种方法
5星 · 资源好评率100%
在C语言中,可以传递二维数组给自定义函数,但通常需要通过指针的方式来间接完成。由于C语言不像某些高级语言那样支持直接传递数组,传递的是指向数组首元素的指针。当你传递二维数组时,实际上是传递了一个指向一维数组的指针,因为二维数组实际上是一个连续的一维内存块。
例如,假设有一个二维整型数组`int arr[3][4]`,你可以这样做:
```c
void processArray(int (*matrix)[4]) {
// 在这里,*matrix是一个指向4个整数的指针,可以遍历整个行
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
int arr[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} };
processArray(arr);
return 0;
}
```
在这个例子中,`processArray`函数接收一个指向四元素数组的指针,并通过它操作二维数组的内容。
阅读全文