【发布时间】:2018-02-19 21:26:52
【问题描述】:
我需要计算数组总和,但属性只能是这个特定的数组。
bool solution(int arr[]) {
int counter = 0;
int len = sizeof(arr) / sizeof(arr[0]);
std::cout << len << std::endl;
for (int i=0; i < len; i++){
counter += arr[i];
}
if (counter == 21)
return true;
return false;
}
它不起作用,我需要从外部传递一个数组长度。 如何在不将数组长度作为属性传递的情况下达到此目的?
【问题讨论】:
-
你不能。数组传入函数时会衰减为指针。
-
为什么限制不传入size?这是首选的方法。
-
在 C++ 中,一种解决方案是使用
std::vector。它知道自己的大小。 -
在不传递长度或数量的情况下,您如何知道要求和多少个数字?请记住,我可以有一个 32 个数组,但只有 10 个插槽被填充。
-
将数组的地址传递给
bool solution(int (*arr)[42]) {。当然,如果数组计数不是42,那么就是编译时错误。