swap函數(shù)一般是一個程序員自定義函數(shù),是實現(xiàn)兩個變量數(shù)值的交換。
創(chuàng)新互聯(lián)服務(wù)項目包括和田縣網(wǎng)站建設(shè)、和田縣網(wǎng)站制作、和田縣網(wǎng)頁制作以及和田縣網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,和田縣網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到和田縣省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
1、比如:
int a = 2;
int b =3;
swap(a,b); //一般用到變量數(shù)值交換,交換后a=3 b = 2;
2、通過使用臨時變量實現(xiàn)交換。
void swap1(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp;
}
擴展資料
C語言swap函數(shù)的使用
#includestdio.h
void swap(int *pa,int *pb)
{
int temp;
temp=*pa,*pa=*pb,*pb=temp;
}
void main()
{
int a=10,b=20;
swap(a,b);//傳遞的是實參變量a,b的地址
printf("a=%d,b=%d\n",a,b);
}
直接調(diào)用即可。如下示例:
#includestdio.h#define sum(b,c){int d=0;d=b+c;printf("兩者的和:%d\n",d);}int main(){ int x=0,y=0; scanf("%d%d",x,y); sum (x,y); return 0;}使用宏函數(shù)或者宏函數(shù)時,注意如下幾點:
(1)宏函數(shù)的參數(shù)沒有類型,預處理器只負責做形式上的替換,而不做參數(shù)類型檢查,所以傳參時要格外小心。
(2)宏函數(shù)定義要注意格式,尤其是括號。
如果上面的宏函數(shù)寫成 #define MAX(a, b) (ab?a:b),省去內(nèi)層括號,則宏展開就成了k = (i0x0fj0x0f?i0x0f:j0x0f),運算的優(yōu)先級就錯了。同樣道理,這個宏定義的外層括號也是不能省的。若函數(shù)中是宏替換為 ++MAX(a,b),則宏展開就成了 ++(a)(b)?(a):(b),運算優(yōu)先級也是錯了。
(3)宏函數(shù)往往會導致較低的代碼執(zhí)行效率。
int a[]={9,3,5,2,1,0,8,7,6,4};int max(n){return n==0?a[0]:MAX(a[n],max(n-1));}int main(){max(9);return 0;}若是普通函數(shù),則通過遞歸,可取的最大值,時間復雜度為O(n)。但若是宏函數(shù),則宏展開為( a[n]max(n-1)?a[n]:max(n-1) ),其中max(n-1)被調(diào)用了兩遍,這樣依此遞歸下去,時間復雜度會很高。
#define?swapInt(a,b)?a^=b^=a^=b;
#define?swap(a,b)????a+=b;?b=a-b;?a-=b;
#define?swap1(t,a,b)?t=a;a=b;b=t;
思路:交換a和b只要有三種方法:
引入變量t:t=a;a=b;b=t;
#includestdio.h??
#define?swap(a,b)?{int?t;?t=a;?a=b;?b=t;?}
int?main()?
{??
int?a,b;
scanf("%d%d",a,b);
swap(a,b);
printf("%d?%d\n",a,b);
return?0;
}
/*
輸出:?
1?2
2?1
*/
加減法:a=a+b;b=a-b;a=a-b;
#includestdio.h??
#define?swap(a,b)?{a=a+b;b=a-b;a=a-b;}
int?main()?
{??
int?a,b;
scanf("%d%d",a,b);
swap(a,b);
printf("%d?%d\n",a,b);
return?0;
}
/*
輸出:?
1?2
2?1
*/
位運算:a=a^b;b=a^b;a=a^b;
#includestdio.h??
#define?swap(a,b)?{a=a^b;b=a^b;a=a^b;}
int?main()?
{??
int?a,b;
scanf("%d%d",a,b);
swap(a,b);
printf("%d?%d\n",a,b);
return?0;
}
/*
輸出:?
1?2
2?1
*/
swap函數(shù)一般是一個程序員自定義函數(shù)。
通常是實現(xiàn)兩個變量數(shù)值的交換,用法比較廣泛。
可使用臨時變量實現(xiàn)交換;可通過臨時指針變量實現(xiàn)交換;可借助指針加入臨時變量來實現(xiàn)交換。
return 0;
}
swap1: x:4,y:3
swap2: x:4,y:3
swap3: x:3,y:4
swap4: x:4,y:3
swap5: x:3,y:4
swap6: x:4,y:3
swap7:ppx:3,ppy:4
拓展資料:
計算機中swap函數(shù)很多,在不同領(lǐng)域有不同的用法,但都是交換的意思。比如字符串交換swap操作實現(xiàn)交換兩個容器內(nèi)所有元素的功能。要交換的容器的類型必須匹配: 必須是相同類型的容器,而且所存儲的元素類型也必須相同。調(diào)用了swap函數(shù)后,右操作數(shù)原來存儲的元素被存放在左操作數(shù)中,反之亦然。
網(wǎng)頁標題:c語言宏定義swap函數(shù) c語言函數(shù)調(diào)用例子swap
標題鏈接:http://chinadenli.net/article28/dodigcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、品牌網(wǎng)站建設(shè)、網(wǎng)站排名、網(wǎng)站收錄、外貿(mào)建站、企業(yè)建站
聲明:本網(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)