我需要在一个函数中交换2个数组的值。问题是我可以更改主体中的任何内容,仅更改函数本身即可。它应该接收2个整数数组,并交换它们。问题是,我不知道数组的大小,出于我的理解,它们甚至可以是不同的大小。尝试以下代码:
int main()
{
int size = 4; //Please notice that I'm using this only to print the array
int a[] = {1,2,3,4};
int b[] = {5,6,7,8};
printArr(a,"a",size);
printArr(b,"b",size);
swapArray(a,b);
printf("Swapped:\n");
printArr(a,"a",size);
printArr(b,"b",size);
}
Run Code Online (Sandbox Code Playgroud)
和这个功能:
void swapArray(int **a,int **b)
{
int *p = *a;
*a = *b;
*b = p;
}
Run Code Online (Sandbox Code Playgroud)
而printArr只是打印数组:
void printArr(int arr[],char name[],int size)
{
printf("%s:\t",name);
for(int i=0;i<size;i++){
printf("%d\t",arr[i]);
}
printf("\n");
}
Run Code Online (Sandbox Code Playgroud)
我得到一个非常奇怪的结果:
a: 1 2 3 4
b: 5 6 7 8
Swapped:
a: 5 6 …Run Code Online (Sandbox Code Playgroud)