c++中数组做函数形参的声明
时间: 2024-01-03 08:06:01 浏览: 39
在C++中,数组作为函数参数可以有两种形式:
1. 数组名作为形参
```c++
void function(int arr[]) {
// 方法体
}
```
2. 指针作为形参
```c++
void function(int* arr, int size) {
// 方法体
}
```
第一种形式中,数组名作为形参时,传递的是数组的首地址,而不是整个数组本身。因此,在函数内部无法获取数组大小,需要另外传递一个参数表示数组大小。
第二种形式中,指针作为形参时,需要同时传递数组的大小,这样在函数内部可以通过指针访问数组元素,也可以通过传递的数组大小控制循环次数。
相关问题
数组做函数形参的声明
在函数形参中声明一个数组有两种方式:
1. 声明固定大小的数组
```c++
void myFunction(int arr[10]) {
// 函数体
}
```
这里声明了一个包含10个整数的数组作为函数的形参。
2. 声明可变大小的数组
```c++
void myFunction(int arr[], int size) {
// 函数体
}
```
这里声明了一个包含变量 `size` 个整数的数组作为函数的形参。在函数内部,可以通过访问数组的元素来处理数组中的数据。注意,这里的 `arr[]` 只是一种简写方式,和 `*arr` 是等价的。因此,也可以使用以下方式声明可变大小的数组:
```c++
void myFunction(int *arr, int size) {
// 函数体
}
```
这里使用了指针来表示数组,而不是使用数组名。在函数内部,可以通过 `arr[i]` 或 `*(arr+i)` 来访问数组的元素。
二维数组作为函数形参可以不填下标吗
在函数形参中声明二维数组时,可以不填下标,但是必须填写数组的列数,例如:
```c++
void func(int arr[][3], int row) {
// ...
}
```
在这个例子中,`arr` 是一个二维数组,其中行数不限,列数为 3。在函数调用时,需要传递一个二维数组和行数作为参数,例如:
```c++
int main() {
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
func(arr, 2);
return 0;
}
```
在这个例子中,`arr` 是一个 2 行 3 列的二维数组,`func` 函数中的 `arr` 形参表示一个行数不限、列数为 3 的二维数组。函数调用时将 `arr` 数组和行数 2 作为参数传递给函数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)