swap函數(shù)一般是一個程序員自定義函數(shù)。
成都創(chuàng)新互聯(lián)公司長期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為梨樹企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、成都網(wǎng)站制作,梨樹網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
通常是實現(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ù)中,反之亦然。
首先 這個 答案 是錯的 ,
這樣寫 會直接 segmentation fault 先給你解釋下
char *s1="abc"; 編譯器會先 把 “abc” 這個 字符串 放到 ”常量區(qū)“ (值不能改) ,
在 分配一個 指針 s1 指向 “abc” 的 開頭 也就是 ‘a(chǎn)’ 這個 字符 ,
那就是了 swap() 要改 常量區(qū) 的 東西 , 所以 會直接 segmentation fault
現(xiàn)在 把 char *s1="abc" 改成 char s1[]="abc"; 或者 假設(shè) 那個 內(nèi)存可讀
然后說后面的
剛才講了 指針 只能 指向一個 地址 也就是 只能指向 一個 ‘點’
所以 s1 其實 是 指向 ‘a(chǎn)’ 這個 字符 *s1 操作的其實 是 ‘a(chǎn)’ 這個 字符
所以 第一個 字符 互相 交換了
這是一個自定義函數(shù)
例如:void
swap(int*p1,int*p2)
//*p1=a;*p2=b;
改變指針指向的地址的值,即a和b的值互換了
使a和b的值進行互換就是它的基本用法
這是一個自定義函數(shù)\x0d\x0a例如:void swap(int*p1,int*p2) //*p1=a;*p2=b;\x0d\x0a改變指針指向的地址的值,即a和b的值互換了\x0d\x0a使a和b的值進行互換就是它的基本用法
#include "stdio.h"
int swap(int *p,int n)
{int temp;
for(i=0;i=(n/2);i++)
{temp=*(p+n-i-1);
*(pn-i-1)=a[i];
a[i]=temp;
}
}
main()
{int a[100],n,i;
printf("shuru n\n");
scanf("%d",n);
printf("\n shuru shuzu a[]\n");
for(i=0;in;i++)
scanf("%d",a[i]);
for(i=0;in;i++)
printf("%d,",a[i]);
printf("\n");
swap(a,n);
printf("huhuan houshi\n");
for(i=0;in;i++)
printf("%d,",a[i]);
}
要用函數(shù)實現(xiàn)兩個數(shù)的交換,則函數(shù)參數(shù)必須定義為指針形式,否則函數(shù)中對數(shù)值的修改將不會影響主調(diào)函數(shù),這是C語言的規(guī)則。
所以,以整型為例,自定義函數(shù)書寫如下:
void swap_int(int*a,int*b)
{
int t;
t = *a;
*a=*b;
*b=t;
}