在C++中,可以通过以下几种方法将数组作为参数传递给函数:
- 传递指针:可以将数组的首地址作为指针传递给函数。函数中通过指针来访问数组的元素。示例代码如下:
void foo(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]);
foo(arr, size);
return 0;
}
- 传递引用:可以将数组作为引用传递给函数。函数中仍然可以通过数组名来访问数组的元素。示例代码如下:
void foo(int (&arr)[5]) {
for (int i = 0; i < 5; i++) {
cout << arr[i] << " ";
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
foo(arr);
return 0;
}
- 使用模板参数:可以使用模板参数来传递数组,这样可以适应不同长度的数组。示例代码如下:
templatevoid foo(T (&arr)[size]) { for (int i = 0; i < size; i++) { cout << arr[i] << " "; } } int main() { int arr1[] = {1, 2, 3, 4, 5}; foo(arr1); double arr2[] = {1.1, 2.2, 3.3, 4.4, 5.5}; foo(arr2); return 0; }
注意:在使用数组作为函数参数时,传递的是数组的副本,修改数组内的元素不会影响原始数组。如果想在函数内部修改原始数组,可以使用指针或引用作为参数。