#include stdio.h??
站在用戶的角度思考問題,與客戶深入溝通,找到天寧網(wǎng)站設計與天寧網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設計、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬空間、企業(yè)郵箱。業(yè)務覆蓋天寧地區(qū)。
void Swap(int a,int b)
{
int tmp = a;
a = b;
b = tmp;
printf("a=%d,b=%d\n",a,b);
}
int main()
{
int a = 5;
int b = 10;
printf("a=%d,b=%d\n",a,b);
Swap(a,b);
printf("a=%d,b=%d\n",a,b);
return 0;
}
擴展資料:
形參和實參的特點
1、形參變量只有在被調(diào)用時才分配內(nèi)存單元,在調(diào)用結(jié)束時,即刻釋放所分配的內(nèi)存單元。因此,形參只在函數(shù)內(nèi)部有效。函數(shù)調(diào)用結(jié)束返回主調(diào)用函數(shù)后則不能再使用該形參變量。
2、實參可以是常量、變量、表達式、函數(shù)等,無論實參是何種類型的量,在進行函數(shù)調(diào)用時,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使參數(shù)獲得確定值。
3、實參和形參在數(shù)量上,類型上、順序上應嚴格一致,否則就會發(fā)生類型不匹配的錯誤。
4、在一般傳值調(diào)用的機制中只能把實參傳送給形參,而不能把形參的值反向地傳送給實參。因此在函數(shù)調(diào)用過程中,形參值發(fā)生改變,而實參中的值不會變化。而在引用調(diào)用的機制當中是將實參引用的地址傳遞給了形參,所以任何發(fā)生在形參上的改變實際上也發(fā)生在實參變量上。
參考資料:
百度百科-形參
1、首先,就是最基本的知識,寫頭文件、函數(shù)聲明、定義變量。
2、下面還需要定義指針,需要定義兩個指針p1和p2,然后把a的地址賦值給p1,把b的地址賦值給p2。
3、然后就是調(diào)用函數(shù),該函數(shù)沒有返回值,就直接調(diào)用,但是參數(shù)進入的是a和b的地址,而不是a和b。
4、函數(shù)點用完之后,就是輸出a和b的值看一看是否互換了。
5、首先,a和b的地址傳給x和y,通過指針直接對a和b的值進行操作。
6、最后,就是調(diào)換*x和*y的值,這樣就是實現(xiàn)了a和b的值。
樓上的這個
a
=
a+b;
b
=
a-b;
a
=
a-b;
是個方法,是符合我們數(shù)學思維的方法,也是最初接觸C語言的人可能想到的方法。
但是這樣編程很不直觀,不如t=a;a=b;b=t;來得快。
似乎在C++中有swap(a,
b)模板函數(shù),直接實現(xiàn)a,b交換。
想玩高級一點的話,可采用“換標不換值”的方法,用數(shù)組元素作為數(shù)組的下標,這種方法換邏輯不換存儲。
#include
void
main()
{
int
a=10,b=20;
int
array1[2]
=
{10,20};
//存a、b值
int
array2[2]
=
{0,1};
//存下標
b
=
array1[array2[0]];
a
=
array1[array2[1]];
printf("a=%d,
b=%d\n",a,b);
}
這個方法在對結(jié)構(gòu)體數(shù)組值交換中非常好用!因為結(jié)構(gòu)體數(shù)組一般每個成員都有很多個值,如:
struct
student
{
int
num;
double
score;
char
name[20];
}stu[5]={{1,98,"ziguowen"},{2,88,"dongda"},{3,78,"haha"}};
//交換stu[0]和stu[1],需要
int
n;
double
s;
char
n[20];
n
=
stu[0].num;
stu[0].num
=
stu[1].num;
stu[1].num
=
n;
s
=
stu[0].score;
stu[0].score
=
stu[1].score;
stu[1].score
=
s;
strcpy(n,
stu[0].name);
strcpy(stu[0].name,
stu[1].name);
strcpy(stu[0].name,s);
//而用下標的話,一個賦值語句即可,直接交換stu[0]
和
stu[1]
下標后全部交換!
#include
stdio.h
void
change(int
*a,int
*b){
int
m;
//定義一個臨時變量
m
=
*a;
//把a指向的值放到m中
*a
=
*b;
//把b指向的值放到a指向的內(nèi)存中
*b
=
m;
//把m中的值放到b指向的空間中,函數(shù)調(diào)用結(jié)束時m的生成周期也完了,就釋放掉了
}
int
main(){
int
i
=
1;
int
j
=
2;
change(i
,j);
//函數(shù)調(diào)用
printf("%d,%d\n",i,j);
return
0;
}
#include"stdio.h"int swap(int *a,int *b){int temp;temp=*a;*a=*b;*b=temp;}
main(){int x,y;printf("請輸入x與y的值,用空格隔開\n");scanf("%d%d",x,y);printf("x=%d,y=%d\n",x,y);swap(x,y);printf("交換后\nx=%d,y=%d\n",x,y);}
擴展資料:
C語言是一門通用計算機編程語言,廣泛應用于底層開發(fā)。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規(guī)格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業(yè)平臺。
二十世紀八十年代,為了避免各開發(fā)廠商用的C語言語法產(chǎn)生差異,由美國國家標準局為C語言制定了一套完整的美國國家標準語法,稱為ANSI C,作為C語言最初的標準。目前2011年12月8日,國際標準化組織(ISO)和國際電工委員會(IEC)發(fā)布的C11標準是C語言的第三個官方標準,也是C語言的最新標準,該標準更好的支持了漢字函數(shù)名和漢字標識符,一定程度上實現(xiàn)了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向?qū)ο蟮木幊陶Z言有所不同。其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
參考資料:百度百科-C語言
這個無法交換數(shù)據(jù)。
C語言函數(shù)參數(shù)的基本規(guī)則是值傳遞,所以傳遞時只能實現(xiàn)實參向形參的單向的、值的傳遞。這就是為什么需要使用指針才能實現(xiàn)值交換的原因。
網(wǎng)頁名稱:c語言函數(shù)中交換值 c語言用函數(shù)交換兩個變量的值
分享路徑:http://www.ekvhdxd.cn/article48/dooiehp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、關(guān)鍵詞優(yōu)化、商城網(wǎng)站、微信小程序、手機網(wǎng)站建設、服務器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)