亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-05-29 16:41:09 來源:億速云 閱讀:523 作者:小新 欄目:開發技術

小編給大家分享一下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;
}

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

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;
}

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

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語言如何實現兩個值互相交換的函數”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

香格里拉县| 兰考县| 巴中市| 天祝| 通州市| 阿巴嘎旗| 偃师市| 博湖县| 安化县| 徐州市| 思南县| 原平市| 梁平县| 湟中县| 昌黎县| 峡江县| 绵竹市| 元氏县| 普兰店市| 虎林市| 临湘市| 汤阴县| 五指山市| 综艺| 鞍山市| 成安县| 湟源县| 班戈县| 隆回县| 巴彦淖尔市| 广饶县| 中宁县| 靖安县| 六安市| 西安市| 尚志市| 罗江县| 琼中| 当涂县| 平江县| 留坝县|