C++怎么将二维数组作为实参传入函数
时间: 2024-05-13 13:14:16 浏览: 13
在 C 语言中,可以将二维数组作为实参传入函数。具体方法如下:
1. 声明函数时,需要将数组的列数指定为形参,如:
```c
void func(int arr[][3], int row);
```
这里的 `arr[][3]` 表示一个列数为 3 的二维数组,`row` 表示数组的行数。
2. 在调用函数时,需要传入数组的名称和行数,如:
```c
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
func(arr, 2);
```
这里的 `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");
}
}
```
这个函数可以输出传入的二维数组的所有元素。
相关问题
将二维数组作为实参传入自定义函数中,并对其值进行更改
在 C 语言中,将二维数组作为实参传入自定义函数中,并对其值进行更改,可以使用指向二维数组的指针来实现。
例如,定义一个函数,将二维数组的每个元素都加 1,代码如下:
```c
void addOne(int (*arr)[3], int row, int col) {
for(int i = 0; i < row; i++) {
for(int j = 0; j < col; j++) {
arr[i][j] += 1;
}
}
}
```
在函数中,参数`arr`是一个指向二维数组的指针,参数`row`和`col`分别表示二维数组的行数和列数。在函数中使用`arr[i][j]`来访问二维数组的元素,并进行加 1 操作。
在主函数中调用该函数,代码如下:
```c
int main() {
int arr[2][3] = {{1,2,3},{4,5,6}};
addOne(arr, 2, 3);
// 输出修改后的数组
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
在调用函数`addOne`时,将数组`arr`的首地址传入函数中,函数中对数组的元素进行了修改。在主函数中输出修改后的数组,结果为:
```
2 3 4
5 6 7
```
说明函数中对数组的修改成功。
将二维数组当作实参输入函数的C语言代码
以下是将二维数组当作实参输入函数的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`函数。