首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言指針實現兩數交換:標準 swap 函數與 malloc/free 完整演示

     編輯:關於C語言

交換函數標準寫法


void swap(int *x, int *y) {
    int tmp = *x;
    *x = *y;
    *y = tmp;
}

完整演示程式


#include 
#include 

void swap(int *x, int *y) {
    int tmp = *x; *x = *y; *y = tmp;
}

int main() {
    /* 動態分配演示 */
    int *x = malloc(sizeof(int));
    int *y = malloc(sizeof(int));
    if (!x || !y) return -1;

    *x = 1; *y = 2;
    printf("交換前: x=%d, y=%d\n", *x, *y);
    swap(x, y);
    printf("交換後: x=%d, y=%d\n", *x, *y);

    free(x); free(y);
    x = y = NULL;

    /* 變量地址交換(更常見) */
    int a = 100, b = 200;
    printf("交換前: a=%d, b=%d\n", a, b);
    swap(&a, &b);
    printf("交換後: a=%d, b=%d\n", a, b);
    return 0;
}

關鍵點

  • 函數參數為指針,傳遞變量地址 &a,函數內解引用 *x 修改原值。
  • 動態分配版本展示指針本身不變,指向的內容交換。
  • 務必檢查 malloc 返回值,使用後 free 並置 NULL 防野指針。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved