以二维数组的指针为输入的函数C语言
时间: 2024-09-08 18:01:15 浏览: 51
在C语言中,如果要编写一个以二维数组的指针为输入的函数,我们需要明确函数应该如何处理这个二维数组。二维数组在C语言中可以通过指针数组来表示,也可以通过指向数组的指针来表示。以下是一个示例函数,该函数接受一个指向二维数组的指针作为参数,并打印出这个二维数组的内容:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
// 函数声明,参数为指向二维数组的指针,行数和列数
void printMatrix(int (*matrix)[COLS], int rows, int cols);
int main() {
int arr[ROWS][COLS] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
// 调用函数,传递二维数组的指针,以及行数和列数
printMatrix(arr, ROWS, COLS);
return 0;
}
// 函数定义
void printMatrix(int (*matrix)[COLS], int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
```
在上述代码中,`printMatrix`函数的第一个参数是一个指向有`COLS`列的整数数组的指针。`rows`和`cols`分别表示二维数组的行数和列数。在`main`函数中,我们创建了一个二维数组`arr`,并将其地址作为指针传递给`printMatrix`函数。函数内部使用双重循环遍历二维数组的每一个元素,并打印出来。
注意,为了定义一个接受二维数组指针的函数,我们必须在参数中指定数组的列数(除非使用变长数组,但请注意变长数组是C99标准中的特性,并不是所有编译器都支持)。
阅读全文