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