1. 程式人生 > >【C語言】給定兩個整型變數的值,將兩個值的內容進行交換(不同方法)

【C語言】給定兩個整型變數的值,將兩個值的內容進行交換(不同方法)

     給定兩個整型變數的值,將兩個值的內容進行交換,現在我介紹幾種不同的實現方法:

法1:在主函式裡實現,這樣操作這兩個值時並未重新開闢空間,直接交換可以達到目的。

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int a = 10;
    int b = 20;
    
    int tmp = a;
    a = b;
    b = tmp;
    
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    system("pause");
    return 0;
}


法2:考慮到重新寫一個函式時,整型變數會開闢空間並將原來的值copy過來,而臨時變數的週期我們是知道的。所以,傳值不可能達到目的,只有傳指標。(更加貼近於計算機的內部原理)

#include<stdio.h>
#include<stdlib.h>

void swap(int *pa,int *pb)
{
    int tmp = *pa;
    *pa = *pb;
    *pb = tmp;
}

int main()
{
    int a = 10;
    int b = 20;
    swap(&a, &b);
    
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    system("pause");
    return 0;
}

法3:針對法2,我們想到引用。

#include<stdio.h>
#include<stdlib.h>

void swap(int &a, int &b)
{
    int tmp = a;
    a = b;
    b = tmp;
}

int main()
{
    int a = 10;
    int b = 20;
    swap(a, b);
    
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    system("pause");
    return 0;
}