c語言中實現兩個值互換的函數


c語言中實現兩個值互換的函數。

1、

#include <stdio.h>

void swap(int n1, int n2)
{
    int tmp;
    tmp = n1;
    n1 = n2;
    n2 = tmp;
}

int main(void)
{
    int a, b;
    puts("please input two integers.");
    printf("a = "); scanf("%d", &a);
    printf("b = "); scanf("%d", &b);
    
    swap(a, b);  //a、b作為實參傳遞給n1和n2,n1和n2實現了互換,但是值傳遞是單向的,n1和n2的值並不能返回到實參a、b中,因此a,b還是原來的值 
    
    printf("swapped a = %d\n", a);
    printf("swapped b = %d\n", b);
    
    return 0;
}

 

 

2、將指針作為實參,可以對該指針指向的對象,也就是實參進行修改

#include <stdio.h>

void swap2(int *n1, int *n2)
{
    int tmp;
    tmp = *n1;
    *n1 = *n2;
    *n2 = tmp;    
} 

int main(void)
{
    int a, b;
    puts("please input two integers.");
    printf("a = "); scanf("%d", &a);
    printf("b = "); scanf("%d", &b);
    
    swap2(&a, &b); //將a和b的指針作為實參傳遞給指針變量n1和n2,n1和n2稱為指向a和b的指針,*n1和*n2分別為a和b的別名,對*n1和n2進行修改,就相當於對a和b進行修改 
    
    printf("\nswapped a = %d\n",a);
    printf("swapped b = %d\n", b);
    
    return 0;
}

 


免責聲明!

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



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