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]);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM