您好我是c ++的初学者,有人可以向我解释一下
char a[]="Hello";
char b[]=a; // is not legal
Run Code Online (Sandbox Code Playgroud)
然而,
char a[]="Hello";
char* b=a; // is legal
Run Code Online (Sandbox Code Playgroud)
如果无法将数组复制或分配给另一个数组,为什么它可以作为参数传递,其中传递的值的副本始终在方法中进行
void copy(char[] a){....}
char[] a="Hello";
copy(a);
Run Code Online (Sandbox Code Playgroud)
kir*_*sos 11
它没有复制数组; 它把它变成指针.如果你修改它,你会亲眼看到:
void f(int x[]) { x[0]=7; }
...
int tst[] = {1,2,3};
f(tst); // tst[0] now equals 7
Run Code Online (Sandbox Code Playgroud)
如果需要复制数组,请使用std::copy:
int a1[] = {1,2,3};
int a2[3];
std::copy(std::begin(a1), std::end(a1), std::begin(a2));
Run Code Online (Sandbox Code Playgroud)
如果你发现自己这样做,你可能想要使用std::array.
| 归档时间: |
|
| 查看次数: |
61808 次 |
| 最近记录: |