【发布时间】:2016-05-19 13:38:33
【问题描述】:
编辑:感谢大家花时间回答。我一一尝试了大家的建议,还是不行。我真的很想交出这个,而不必向教授寻求帮助,并表明我不知道该怎么做,但在这一点上,我想我必须这样做。感谢您抽出宝贵时间提供帮助!谢谢。
我正在学习 C++ 课程,但有一个作业我遇到了麻烦。我不断收到错误:所有三个数组声明都出现“'int'之前的预期主表达式”。并且所有三个传递地址都“未在此范围内声明”。这是在我通常使用的编译器上。我尝试了一个不同的编译器,我得到的错误是“prog.cpp:14:38: error: cannot convert 'std::array' to 'int' for argument '1' to 'void addArrays(int*, int*, int*)' addArrays(&array1,&array2,&array3);" 我不确定发生了什么,因为我是初学者,希望有人能告诉我这些错误的含义以及我能做些什么来修复它们。先感谢您。这是我的代码:
#include <iostream>
#include <array>
using namespace std;
void addArrays(int*, int*, int*);
int main()
{
array< int, 20 >array1 =
{7,45,90,1,33,254,3,8,9,4,2,6,77,5,9,2,22,4,12,6};
array< int, 20 >array2 =
{88,4,6,75,1,12,33,99,66,88,7,4,44,4,3,13,5,4,9,3};
array< int, 20 >array3;
addArrays(&array1,&array2,&array3);
cout << "Array1 + Array2 = Array3" << endl;
int j;
for(j=0; j<20; ++j)
cout << array1[j] << "+" << array2[j] << "=" << array3[j] << endl;
return 0;
}
void addArrays(int *array1, int *array2, int *array3)
{
int i;
for(i=0; i<20; ++i)
array3[i] = array1[i]+array2[i];
}
【问题讨论】:
标签: c++ arrays pass-by-reference