C语言如何实现将指针传参传入的二维数组输出行数和列数
时间: 2024-05-02 11:22:06 浏览: 92
可以使用以下方法实现将指针传参传入的二维数组输出行数和列数:
```c
#include <stdio.h>
void printArray(int (*arr)[], int rows, int cols) {
printf("Number of rows: %d\n", rows);
printf("Number of columns: %d\n", cols);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", *((arr+i*cols)+j));
}
printf("\n");
}
}
int main() {
int arr[][3] = {{1,2,3}, {4,5,6}, {7,8,9}};
int rows = sizeof(arr) / sizeof(arr[0]);
int cols = sizeof(arr[0]) / sizeof(int);
printArray(arr, rows, cols);
return 0;
}
```
在上面的代码中,我们定义了一个名为`printArray`的函数,该函数接收一个指向二维数组的指针,以及该数组的行数和列数作为参数。在函数内部,我们首先输出行数和列数,然后使用两个嵌套循环遍历整个数组,并将每个元素打印到控制台上。
在主函数中,我们声明了一个二维数组`arr`,并使用`sizeof`运算符计算出了行数和列数。然后,我们调用`printArray`函数,将数组指针、行数和列数作为参数传递给该函数。最后,我们输出了整个数组。
阅读全文