c++ - 如何在数组和指针之间交换 C++

标签 c++ pointers swap

我正在尝试在 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;
}

当我从方法中返回时没有任何变化,

在方法中一切正常,但当方法返回时没有任何变化。

我的问题是:

A) 我的错误是什么? B)我应该如何修复它。

最佳答案

你的错误是你假设数组是指针。他们不是。它们可以退化为指针。

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

void foo(int*& a, int b[])
{
  int * c;
  c=a;
  a=b;
}

关于c++ - 如何在数组和指针之间交换 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9962781/

相关文章:

android - 错误 : cannot find symbol variable GL_TEXTURE_EXTERNAL_OES + OpenCV on Android Studio

c++ - 如何检测是否在 Windows Metro 应用程序进程中运行?

pointers - Golang指针定义

python - 我如何在Python中交换矩阵中的列表?

c++ - 与右值交换

c++ - 使用临时变量交换不提供任何输出,但 swap() 提供所需的输出输出。 C++

c++ - 同时处理非成员函数指针和成员函数指针

c++ - Qt应用程序阻塞系统关机

c - 在 C 中取消引用包含指针的数组

转换为整数时的 C++ 短数组 'reversed'