欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2021年05月29日 10:23:12   作者:小蝦米2018  
本文通過代碼給大家介紹c語言實現兩個值互相交換的函數,通過實例代碼給大家講解的很詳細,具有一定的參考借鑒價值,對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;
}

ps:下面看下C語言實現兩數交換函數

我們可以引入一個簡單的中間變量t進行兩個數值交換。

int t;
t=x;
x=y;
y=t;

然而在swap(int x,int y)被調用時,實參進行副本初始化,函數并沒有訪問調用傳遞的實參本身,因而也不會修改實參的值。
那么下列函數

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

將達不到交換的目的。

在C++中我們可以使用引用形參達到目的:

void swap(int &x, int &y)
{
       int t;
       t=x;
       x=y;
       y=t;
}

那么在C語言中怎么實現交換函數呢?
利用指針值交換實現

#include<stdio.h>
void swap(int *x, int *y)
{
 int t;
    t=*x;
 *x=*y;
 *y=t;
}
int main()
{
 int a=1,b=2;
 swap(&a,&b);
 printf("a=%d,b=%d",a,b);
 return 0;
}

到此這篇關于c語言實現兩個值互相交換的函數的文章就介紹到這了,更多相關c語言兩個值互換函數內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 軟件構建工具makefile基礎講解

    軟件構建工具makefile基礎講解

    這篇文章介紹了軟件構建工具makefile,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • C語言中數據結構之鏈式基數排序

    C語言中數據結構之鏈式基數排序

    這篇文章主要介紹了C語言中數據結構之鏈式基數排序的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • C++函數指針與指針函數有哪些關系和區(qū)別

    C++函數指針與指針函數有哪些關系和區(qū)別

    函數指針是一個指針變量,它可以存儲函數的地址,然后使用函數指針,這篇文章主要介紹了C++中函數指針與指針函數有哪些關系和區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值
    2022-08-08
  • C語言動態(tài)與靜態(tài)分別實現通訊錄詳細過程

    C語言動態(tài)與靜態(tài)分別實現通訊錄詳細過程

    這篇文章主要為大家介紹了C語言動態(tài)與靜態(tài)分別實現通訊錄,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C++生成不重復的隨機整數

    C++生成不重復的隨機整數

    這篇文章主要為大家詳細介紹了C++生成不重復的隨機整數,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • c++ builder TreeView控件節(jié)點遍歷代碼

    c++ builder TreeView控件節(jié)點遍歷代碼

    這篇文章介紹了c++ builder TreeView控件節(jié)點遍歷代碼,有需要的朋友可以參考一下
    2013-09-09
  • 深入解析Linux下\r\n的問題

    深入解析Linux下\r\n的問題

    本篇文章是對Linux下\r\n的問題進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • c/c++單例模式類的混合編譯案例詳解

    c/c++單例模式類的混合編譯案例詳解

    ? 由于c語言中沒有類的概念,因此對于有類的cpp文件與c文件混合編譯時,提供一個中間層提供類的操作接口,在c文件中調用接口實現間接操作類對象,這篇文章主要介紹了c/c++單例模式類的混合編譯的相關資料
    2022-10-10
  • C++構造函數+復制構造函數+重載等號運算符調用

    C++構造函數+復制構造函數+重載等號運算符調用

    這篇文章主要介紹了C++構造函數+復制構造函數+重載等號運算符調用,文章敘述詳細,具有一定的的參考價值,需要的小伙伴可以參考一下
    2022-03-03
  • Flutter應用Windows平臺接入實踐詳解

    Flutter應用Windows平臺接入實踐詳解

    這篇文章主要為大家介紹了Flutter應用Windows平臺接入實踐詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02

最新評論