面试题答案
一键面试在C++中,当一个数组作为函数实参传递时,它会退化为指向其首元素的指针。
以下是示例代码:
#include <iostream>
// 函数声明,参数为指向int的指针和数组元素个数
int sumArray(int* arr, int size) {
int sum = 0;
for (int i = 0; i < size; ++i) {
sum += arr[i];
}
return sum;
}
int main() {
int myArray[] = {1, 2, 3, 4, 5};
int size = sizeof(myArray) / sizeof(myArray[0]);
// 调用函数,传递数组名(退化为指针)和数组大小
int result = sumArray(myArray, size);
std::cout << "数组元素总和为: " << result << std::endl;
return 0;
}
在上述代码中,sumArray
函数接收一个int*
类型的指针(即数组退化为的指针)和数组元素个数size
。在函数内部通过遍历指针所指向的元素来计算总和。在main
函数中,定义了一个数组myArray
,并调用sumArray
函数传递数组名(此时数组退化为指向首元素的指针)和数组大小,最后输出数组元素的总和。