C++ 如何将函数的整数大小与数组的实际大小联系起来?C++;
我试图编写一个计算数组和的函数,但是当我声明int size=0,函数运行0次,因为i=0;我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 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;i cout您需要向函数传递两个参数——要么是数组的开头加上大小,要么是数组的开头加上结尾(一个超过结尾),这在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;it cout您需要向函数传递两个参数——要么是数组的开头加上大小,要么是数组的开头加上结尾(一个超过结尾),这在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;it cout将数组大小作为参数传入:
#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我确实从高炉那里借用了术语。我是从。