void(int a []){a [5] = 3; //这是错的?}
我可以这样做,以便传入的数组被修改?
很抱歉删除,这里有点新...
我有另一个问题可以回答我的问题:
如果我有
void Test(int a) {
}
void Best(int &a) {
}
Run Code Online (Sandbox Code Playgroud)
这两个陈述是否相同?
Test(a);
Best(&a);
Run Code Online (Sandbox Code Playgroud)
Jam*_*ran 13
void Test(int a[])
{
a[5] = 3;
}
Run Code Online (Sandbox Code Playgroud)
只是替代语法:
void Test(int* a)
{
*(a+5) = 3;
}
Run Code Online (Sandbox Code Playgroud)
没有数组传递,只是一个指针.原始数组已修改.
至于你的第二次修订,给出:
void Test(int a)
{
}
void Best(int &a)
{
}
Run Code Online (Sandbox Code Playgroud)
然后
Test(aa); // Passes aa by value. Changes to a in Test() do not effect aa
Best(aa); // Passes aa by reference; Changes to a DO effect aa
Best(&aa); // Is a syntax error: Passing a pointer instead of an int.
Run Code Online (Sandbox Code Playgroud)