這個無法交換數(shù)據(jù)。
創(chuàng)新互聯(lián)建站專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、大冶網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價格優(yōu)惠性價比高,為大冶等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
C語言函數(shù)參數(shù)的基本規(guī)則是值傳遞,所以傳遞時只能實(shí)現(xiàn)實(shí)參向形參的單向的、值的傳遞。這就是為什么需要使用指針才能實(shí)現(xiàn)值交換的原因。
這是 C 語言 本身 特性 規(guī)定了 的。你只要記住 這點(diǎn): 形參 必須用指針,這樣才能把 通過 函數(shù)加工 后的 數(shù)值 帶回來。通過函數(shù) 互換后 的a,b,才能被帶回。
至于“為什么”,可以不去追究,它的理由 無非 是什么 地址啦,值啦之類,時間長了,自己會記混淆。
其它語言,例如 fortran 語言,不管形參是什么花樣,都能帶回。
#include
stdio.h
void
change(int
*a,int
*b){
int
m;
//定義一個臨時變量
m
=
*a;
//把a(bǔ)指向的值放到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 fun1(int a,int b)
{
return a/b;
}
int fun2(int a,int b)
{
return a%b;
}
void main()
{
int k;
int i1,i2,i3,i4;
printf("Please enter a data with 4 digits\n");
scanf("%d",k);
i1= fun1(k,1000);
k= fun2(k,1000);
i2= fun1(k,100);
k=fun2(k,100);
i3=fun1(k,10);
i4=fun2(k,10);
printf("%d %d %d %d\n",i1,i2,i3,i4);
getchar();
getchar();
}
當(dāng)前標(biāo)題:c語言函數(shù)調(diào)用互換 c語言交換函數(shù)void swap
地址分享:http://jinyejixie.com/article4/doscoie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、定制開發(fā)、關(guān)鍵詞優(yōu)化、電子商務(wù)、品牌網(wǎng)站制作、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)