在前面的博客中,我实现了一个交换两个值的函数,并简单介绍了值传递与地址传递的异同,还不清楚上面内容的可以点击查看【写一个交换函数】
在本篇分享的交换两个数组内容的函数,主要思想如下:
实现原理:与交换两个值的实现相同,就是通过地址传递,从而实现在交换函数中值的改变直接联动main函数中参数。
- 根据地址传递的特点:传递数组名,接收为数组的首地址(上篇博客有更多讲解)。
- 将数组中的元素逐个进行值交换(两个数组中元素个数相同)。
交换思想:与交换两个值的思想也相同,就是借用一个临时变量,为了不互相覆盖。
或者在这篇【交换函数三种思想】博客中,我介绍了其他的交换思想也可供参考使用。
一维数组中所有值的交换:完整代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void Change(int *a, int *b)
{
int t; //t为临时变量
t = *a;
*a = *b;
*b = t;
}
int main()
{
int A[5];
int B[5];
int i, j, k;
printf("请输入A数组的五个数:");
for (i = 0; i < 5; i++)
{
scanf("%d", &A[