通过引用传递数组并修改值C++

Roh*_*hit 10 c++ arrays pass-by-reference

我想写一个函数,它接受inArray[3] = {1,2,3,4}outArray[3],并outArray[3]在函数内修改,现在包含values = {3,4,1,2}.

int main{
 int inArray[4] = {1,2,3,4};
 int outArray[4];

 myFunction(&inArray, &outArray);
}

void myFunction(&inArray, &outArray){
  outArray[0] = inArray[2];
  outArray[1] = inArray[3];
  outArray[2] = inArray[0];
  outArray[3] = inArray[1];
}
Run Code Online (Sandbox Code Playgroud)

我在这里做错了,我并不完全理解如何通过引用传递数组并操纵函数内部的值.

Vla*_*cow 4

该函数及其调用可以如下所示

const size_t N = 4;

void myFunction( int ( &inArray )[N], int ( &outArray )[N] )
{
  outArray[0] = inArray[2];
  outArray[1] = inArray[3];
  outArray[2] = inArray[0];
  outArray[3] = inArray[1];
}

int main()
{
 int inArray[N] = {1,2,3,4};
 int outArray[N];

 myFunction( inArray, outArray );
}
Run Code Online (Sandbox Code Playgroud)

考虑到您对数组的定义

int inArray[3] = {1,2,3,4};
Run Code Online (Sandbox Code Playgroud)

包含拼写错误,不会被编译。必须至少有类似

int inArray[4] = {1,2,3,4};
Run Code Online (Sandbox Code Playgroud)

或者

int inArray[] = {1,2,3,4};
Run Code Online (Sandbox Code Playgroud)