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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
c++ builder TreeView控件節(jié)點遍歷代碼
這篇文章介紹了c++ builder TreeView控件節(jié)點遍歷代碼,有需要的朋友可以參考一下2013-09-09

