如何在数组和指针c ++之间进行交换

zee*_*blu 1 c++ swap pointers

我试图在c ++中交换数组和指针

我的代码如下:

void foo(int* a, int* b);
void main()
{
  int *a = NULL;
  int b[6]={2,3,5,6};
  foo(a,b);
}

void foo(int* a, int b[])
{
  int * c;
  c=a;
  a=b;
  b=c;
}
Run Code Online (Sandbox Code Playgroud)

当我退出方法时没有改变,

在方法内,一切都工作,但当方法返回时没有任何变化.

我的问题是:

A)我的错误是什么?B)我该如何解决它.

Luc*_*ore 7

你的错误是假设数组是指针.他们不是.他们可以腐烂到指针.

你不能改变b,但你可以a通过引用传递它来改变:

void foo(int*& a, int b[])
{
  int * c;
  c=a;
  a=b;
}
Run Code Online (Sandbox Code Playgroud)