Assigning one array to another array c++
本问题已经有最佳答案,请猛点这里访问。
大家好,我是C++初学者,有人能给我解释一下吗?
1 2 3 | char a[]="Hello"; char b[]=a; // is not legal |
然而,
1 2 3 | char a[]="Hello"; char* b=a; // is legal |
如果一个数组不能被复制或分配给另一个数组,为什么它可以作为参数传递,而传递的值的副本总是在方法中生成
2它没有复制数组,而是将其转换为指针。如果您修改它,您将亲自看到:
1 2 3 4 | void f(int x[]) { x[0]=7; } ... int tst[] = {1,2,3}; f(tst); // tst[0] now equals 7 |
如果需要复制数组,请使用
1 2 3 | int a1[] = {1,2,3}; int a2[3]; std::copy(std::begin(a1), std::end(a1), std::begin(a2)); |
如果你发现自己这样做了,你可能会想使用一个
该数组在函数声明中自动(隐式)转换为指针,并复制该指针。当然,复制的指针指向与原始指针相同的位置,因此可以通过函数中复制的指针修改原始数组中的数据。