C语言 函数实现一维数组的元素交换顺序

背景

最近在做算法作业,要用C去实现,虽然内心是崩溃食xiang的,但还是抑制住了退课的冲动……这里记录一下一个小情景的实现。
要用C语言定义一个swap函数实现一维数组的元素交换顺序。因为涉及到数组、指针、函数传参这三个概念,所以保存一下警示自己。

主函数代码

#include<stdio.h>
#include <stdlib.h>
#define N 10
int main(void)
{
    int i=0,List[N];
    for(;i<N;i++)
        List[i] = i;
    /* swap函数 */
     for(i=0;i<N;i++)
        printf("List[%d]=%d\n",i,List[i]);
    return 0;
}

函数代码1

void swap1(int *X,int i,int j)
{
    int temp = X[i];
    X[i] = X[j];
    X[j] = temp;
}

这个swap1函数,X指针代表数组初始地址,调用的时候需要用数组名List来填入,后面i、j分别代表等待交换元素的下标。调用main的时候使用swap1(List,4,9);来替代,执行效果:

函数代码2

void swap2(int *X, int *Y)
{
    int temp = *X;
    *X = *Y;
    *Y = temp;
}

这个swap2函数,X指针代表数组第一个元素List[i]的地址,Y指针代表数组第二个元素List[j]的地址,调用main的时候使用直接取地址符:swap2(&List[4],&List[9]);,执行效果一样不再展示。

同时使用

swap1(List,0,5);
swap2(&List[2],&List[9]);

posted @ 2020-10-11 15:50  爱吃砂糖橘的白龙  阅读(3363)  评论(0编辑  收藏  举报