2024-04-27 周六
1.编程技能学习
Q:C++中,数组如何作为函数的入参?
在C++中,数组作为函数的入参有几种常见的方法:
- 1.使用数组指针:
void myFunction(int *arr, int size) {
// 使用arr[i]访问数组元素
}
int main() {
int myArray[] = {1, 2, 3, 4, 5};
int size = sizeof(myArray) / sizeof(myArray[0]);
myFunction(myArray, size);
return 0;
}
- 2.使用引用(C++11及以上版本):
void myFunction(int (&arr)[5]) {
// 使用arr[i]访问数组元素
}
int main() {
int myArray[] = {1, 2, 3, 4, 5};
myFunction(myArray);
return 0;
}
请注意,上述示例中大小为5的数组作为引用传递给函数。这种方法的局限性在于数组大小固定,如果你使用不同大小的数组调用该函数,这将无法适用。这种情况下,可以使用模板来指定数组大小:
template<int N>
void myFunction(int (&arr)[N]) {
// 使用arr[i]访问数组元素
}
int main() {
int myArray[] = {1, 2, 3, 4, 5};
myFunction(myArray);
return 0;
}
- 3. 使用
std::vector
或std::array
(C++11及以上版本):
C++提供了更灵活且安全的数据结构,如std::vector
和std::array
,你可以考虑使用这些数据结构来传递数组。
#include <vector>
void myFunction(const std::vector<int>& arr) {
// 使用arr[i]访问数组元素
}
int main() {
std::vector<int> myArray = {1, 2, 3, 4, 5};
myFunction(myArray);
return 0;
}
这些方法中,使用 std::vector
或 std::array
是比较现代的C++编程风格,它们提供了更好的安全性和功能。然而,根据你的具体需求和限制,你可以根据需要选择使用其他方法。