数组与函数
本课属于 Coddy C++ 学习旅程的“基础知识”单元。第 62 课,共 74 课。
不能将整个数组直接传递给函数。尝试将数组传递给函数时,它会“退化”为指向第一个元素的指针。
例如:
int numbers[5] = {1, 2, 3, 4, 5};
void processArray(int arr[]) {
int size = std::size(arr);
}这里的 std::size(arr) 无法编译,因为 arr 实际上是一个指针,而不是数组,并且指针不会存储数组的大小。你将在下一门课程中学习指针。
这就是为什么将数组传递给函数时,我们通常需要将大小作为单独的参数传递:
void processArray(int arr[], int size) {
// 现在我们可以用 size 参数安全地处理数组了
}下面是调用函数的方法:
int numbers[5] = {1, 2, 3, 4, 5};
processArray(numbers, 5);此外,也不能在函数中返回数组:
int[] processArray(int arr[]) {
return arr;
}这是不合法的。你应该改用 * 语法:
int* processArray(int arr[]) {
return arr;
}
int* newArr = processArray(arr);星号 (*) 语法指的是指针,我们将在下一门课程中讨论它们。
亲手试试
这节课没有代码挑战。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: C++ 在线编译器