c++函数中怎么传递数组
时间: 2023-11-13 09:05:01 浏览: 35
在 C++ 中,可以通过以下两种方式来传递数组:
1. 传递指针
函数参数可以声明为指向数组首元素的指针。这种方式可以传递任何类型和任何维度的数组。例如:
```c++
void func(int* arr, int size) {
// do something with arr
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
func(arr, 5);
return 0;
}
```
2. 传递引用
函数参数可以声明为数组引用。这种方式只能传递数组,而且不能改变数组大小。例如:
```c++
void func(int (&arr)[5]) {
// do something with arr
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
func(arr);
return 0;
}
```
需要注意的是,在函数内部使用数组时,最好同时传递数组大小,以避免越界访问。
相关问题
c++函数怎么返回数组
在 C 语言中,函数无法直接返回一个数组,但可以通过以下两种方式来间接实现返回一个数组:
1. 返回指向数组的指针
可以在函数中声明一个指针变量,用于指向数组的首地址,然后将该指针返回给调用函数。例如:
```c
int* func(){
static int arr[5] = {1, 2, 3, 4, 5};
return arr;
}
```
在这个例子中,`func()` 函数返回一个指向 `arr` 数组的指针,调用函数可以通过该指针访问数组元素。
2. 通过参数传递数组
可以在函数中声明一个数组形参,并将要返回的数组作为实参传递给该函数。例如:
```c
void func(int arr[], int size){
for(int i = 0; i < size; i++){
arr[i] = i + 1;
}
}
```
在这个例子中,`func()` 函数通过数组形参 `arr` 修改了调用函数中的数组元素。
需要注意的是,如果要返回一个动态分配的数组,需要在函数内部使用 `malloc()` 或者 `calloc()` 函数申请内存,并在使用完毕后记得使用 `free()` 函数释放内存。
c++函数传递一维数组
在 C++ 中,函数传递一维数组可以使用指针或引用作为函数参数。下面是两种常见的方法:
1. 使用指针作为函数参数:
```cpp
void myFunction(int* arr, int size) {
// 在函数中使用指针访问和操作数组元素
for (int i = 0; i < size; i++) {
// 对数组元素进行操作
cout << arr[i] << " ";
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
// 将数组名作为参数传递给函数,它会退化为指向数组首元素的指针
myFunction(arr, size);
return 0;
}
```
2. 使用引用作为函数参数:
```cpp
void myFunction(int (&arr)[5]) {
// 在函数中直接使用引用访问和操作数组元素
for (int i = 0; i < 5; i++) {
// 对数组元素进行操作
cout << arr[i] << " ";
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
// 将数组作为引用传递给函数
myFunction(arr);
return 0;
}
```
无论使用指针还是引用,都可以在函数中访问和操作传递的一维数组。