C++参数参考

1 c++ parameters reference

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)