明明调用了对象方法,为什么对象调用后的值没有保存到array中传回main函数,导致输出还是0~7呢?

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
#include<array>
#include<iostream>
using namespace std;
array<int, 8>myarr;
class solution {
public:
    void add_i(array<int, 8>myarr)
    {
        for (int i = 0; i < 8; i++)
        {
            myarr[i] = myarr[i] + i;
        }
    }
};

int main()
{

    for (int i = 0; i < 8; i++)
    {
        myarr[i] = i;
    }
    solution s1;
    s1.add_i(myarr);
    for (int j = 0; j < 8; j++)
    {
        cout << myarr[j] << endl;
    }
    return 0;

}

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

改成void add_i(array<int, 8> &myarr)试试

传参有拷贝构造,其实是一个临时变量传到函数里