Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将函数的整数大小与数组的实际大小联系起来?C++;_C++_Arrays_Sum - Fatal编程技术网

C++ 如何将函数的整数大小与数组的实际大小联系起来?C++;

C++ 如何将函数的整数大小与数组的实际大小联系起来?C++;,c++,arrays,sum,C++,Arrays,Sum,我试图编写一个计算数组和的函数,但是当我声明int size=0,函数运行0次,因为i=0;我 int arraChec(int arra[]) { int size = 0; int sum = 0; for (int i = 0; i < size; i++) { sum = sum + arra[i]; } return sum; } int main() { int arra1[7] = { 2,3,5,7,

我试图编写一个计算数组和的函数,但是当我声明int size=0,函数运行0次,因为i=0;我
int arraChec(int arra[]) {

    int size = 0;
    int sum = 0;

    for (int i = 0; i < size; i++) {
        sum = sum + arra[i];
    }
    return sum;
}


int main() {

    int arra1[7] = { 2,3,5,7,8,9,1 };

    cout << arraChec(arra1) << endl;

    system("pause");
}
int-arraChec(int-arra[]{
int size=0;
整数和=0;
对于(int i=0;icout您需要向函数传递两个参数——要么是数组的开头加上大小,要么是数组的开头加上结尾(一个超过结尾),这在C++中是很常见的:

int arraChec(int* begin, int* end) {
    int sum = 0;
    for (int* it = begin; it < end; ++it) {
        sum += *it;
    }
    return sum;
}

int main() {

    int arra1[7] = { 2,3,5,7,8,9,1 };

    cout << arraChec(std::begin(arra1), std::end(arra1)) << endl;

    system("pause");
}
int数组(int*begin,int*end){
整数和=0;
for(int*it=begin;itcout您需要向函数传递两个参数——要么是数组的开头加上大小,要么是数组的开头加上结尾(一个超过结尾),这在C++中是很常见的:

int arraChec(int* begin, int* end) {
    int sum = 0;
    for (int* it = begin; it < end; ++it) {
        sum += *it;
    }
    return sum;
}

int main() {

    int arra1[7] = { 2,3,5,7,8,9,1 };

    cout << arraChec(std::begin(arra1), std::end(arra1)) << endl;

    system("pause");
}
int数组(int*begin,int*end){
整数和=0;
for(int*it=begin;itcout将数组大小作为参数传入:

#include <iostream>
int arraChec(int arra[], int size) {
    int sum = 0;
    for (int i = 0; i < size; i++) {
        sum += arra[i];
    }
    return sum;
}
int main() {
    int arra1[7] = { 2, 3, 5, 7, 8, 9, 1 };
    std::cout << arraChec(arra1, 7) << std::endl;
}

如果您指的是某种C风格的
(sizeof(arra)/sizeof(*arra))
构造,我建议您不要使用它。

将数组大小作为参数传递:

#include <iostream>
int arraChec(int arra[], int size) {
    int sum = 0;
    for (int i = 0; i < size; i++) {
        sum += arra[i];
    }
    return sum;
}
int main() {
    int arra1[7] = { 2, 3, 5, 7, 8, 9, 1 };
    std::cout << arraChec(arra1, 7) << std::endl;
}
如果您指的是某些C样式
(sizeof(arra)/sizeof(*arra))
构造,我建议您不要使用它。

使用而不是固定大小的C样式数组

#include <iostream>
#include <array>
#include <numeric>
using namespace std;

int main() {
    array<int, 7> arr = { 2, 3, 5, 7, 8, 9, 1 };
    cout << accumulate(arr.begin(), arr.end(), 0) << endl;
    return 0;
}
了解更多信息。

使用而不是固定大小的C型阵列

#include <iostream>
#include <array>
#include <numeric>
using namespace std;

int main() {
    array<int, 7> arr = { 2, 3, 5, 7, 8, 9, 1 };
    cout << accumulate(arr.begin(), arr.end(), 0) << endl;
    return 0;
}

阅读更多信息。

另一种尚未提及的方式是:

template<size_t N>
int arraChec(int (&arra)[N]) {
    int sum = 0;

    for (size_t i = 0; i < N; i++) {
        sum = sum + arra[i];
    }
    return sum;
}
模板
内部阵列(内部阵列)[N]){
整数和=0;
对于(大小i=0;i
另一种尚未提及的方式是:

template<size_t N>
int arraChec(int (&arra)[N]) {
    int sum = 0;

    for (size_t i = 0; i < N; i++) {
        sum = sum + arra[i];
    }
    return sum;
}
模板
内部阵列(内部阵列)[N]){
整数和=0;
对于(大小i=0;i
添加另一个表示数组大小的函数参数。相应地使用。问题是我不想将i<7,例如,我希望程序在main中声明数组时自行计算大小,然后使用
std::array
std::vector
/通常停止使用C样式的数组和指针。添加另一个表示数组大小的er函数参数。请相应地使用。问题是,我不想将i设置为<7,例如,当我在main中声明数组时,我想让程序自己计算大小,然后使用
std::array
std::vector
/通常停止使用C样式的数组和指针。@blastfurny确实如此。i b我确实从高炉那里借用了术语。我是从。