将二维数组当作实参输入函数的C语言代码
时间: 2023-04-05 11:03:55 浏览: 192
以下是将二维数组当作实参输入函数的C语言代码:
```c
#include <stdio.h>
void printArray(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 arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
printArray(arr, 2);
return 0;
}
```
这个程序定义了一个名为`printArray`的函数,该函数接受一个二维数组和一个整数作为参数。函数内部使用两个嵌套的循环来遍历数组并打印每个元素的值。在主函数中,我们定义了一个二维数组`arr`,并将其作为实参传递给`printArray`函数。
相关问题
将动态分配的二维数组当作实参输入函数的C语言代码
以下是将动态分配的二维数组当作实参输入函数的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
void input(int **arr, int rows, int cols) {
int i, j;
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
scanf("%d", &arr[i][j]);
}
}
}
int main() {
int rows, cols, i, j;
printf("Enter the number of rows and columns: ");
scanf("%d %d", &rows, &cols);
// allocate memory for the 2D array
int **arr = (int **)malloc(rows * sizeof(int *));
for (i = 0; i < rows; i++) {
arr[i] = (int *)malloc(cols * sizeof(int));
}
// input values into the array
printf("Enter the elements of the array:\n");
input(arr, rows, cols);
// print the array
printf("The array is:\n");
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
// free the memory allocated for the array
for (i = 0; i < rows; i++) {
free(arr[i]);
}
free(arr);
return 0;
}
```
C语言二维数组作为函数实参
当将二维数组作为函数的实参传递时,实际上将数组的首地址传递给了函数。在函数中声明的二维数组参数,其第一维可以省略,但第二维必须指定。例如:
```c
void func(int arr[][3], int row);
```
其中,参数`arr`表示一个二维数组,其第一维长度未知,第二维长度为3;参数`row`表示该二维数组的行数。
在调用函数时,只需要传递数组名即可,例如:
```c
int arr[2][3] = {{1,2,3},{4,5,6}};
func(arr, 2);
```
注意,当在函数内部使用二维数组时,需要注意下标的使用,例如:
```c
void func(int arr[][3], int row) {
for (int i = 0; i < row; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
```
在函数内部使用`arr[i][j]`来访问数组元素。
阅读全文