你的错误:
int A[5]{2,3,5,9,1};
for(int i = 0; i<=5; i++) // accessing i <= 5 (out of bound of array), do it i < 5
{
cout<<i[A]; // print A[i] not i[A], that's incorrect, i ain't an array
}
如果您在 C++ 中做同样的事情,那么您可以改用 std::vector<>。
考虑这个程序:
#include <iostream>
#include <vector>
int main(void)
{
std::vector<int> A{2, 3, 5, 9, 1};
for (int i = 0; i < A.size(); i++)
std::cout << A[i] << ' ';
std::cout << std::endl;
return 0;
}
std::vector<> 在当今的 C++ 中有很多用法。您不再需要坚持使用数组的静态大小。
作为替代方案,您可以做同样的事情(如 C 风格):
#include <iostream>
int main(void)
{
int A[]{2, 3, 5, 9, 1};
size_t len = sizeof(A) / sizeof(A[0]);
for (int i = 0; i < len; i++)
std::cout << A[i] << ' '; // you're trying to access elements of 'A' not of 'i'
std::cout << std::endl;
return 0;
}
该程序动态分配数组大小并迭代A[i],直到i达到定义的数组大小。