swap ( ) ; //調用函數(shù)去交換了全局變量的值。
發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務至上”的服務理念,堅持“二合一”的優(yōu)良服務模式,真誠服務每家企業(yè),認真做好每個細節(jié),不斷完善自我,成就企業(yè),實現(xiàn)共贏。行業(yè)涉及樓梯護欄等,在重慶網站建設公司、成都全網營銷推廣、WAP手機網站、VI設計、軟件開發(fā)等項目上具有豐富的設計經驗。
你這個采用的是值交換,在調用的函數(shù)里換完后,函數(shù)生命期結束死掉,而main函數(shù)里的值還是沒有變化。
因此實際交換的是a,b而不是x,y。您要做的只需是定義函數(shù)的時候聲明參數(shù)類型為指針:void swap(int *a,int *b)調用的時候為swap(&x,&y);&是取地址的符號。這樣的話a就是x,b就是y了。
第一題是因為調 用函數(shù)實現(xiàn)的是單值返回,所以不會改變原來函數(shù)中的值。第二題要注意一點,傳值和傳指針是有區(qū)別的,傳值不會改變原來的值,傳指針有可能改變原來的值,但是也要注意他的單值傳遞這個問題。
這就是值傳遞的問題。你調用這個函數(shù)的時候,swap(a,b); 只是把a,b的值傳遞給了x,y;然后在函數(shù)中對于x,y進行了對調。注意,是x,y與a,b本身沒有關系的。所以這里要用的話,必須用地址傳遞。
指針本身也有地址,swap函數(shù)交換的是指針本身的地址,并沒有改變指針所指的變量,所以p依然指向x、q指向y,所以值不變。
其次,用unsigned是為了防止char的符號特性。某些機器上:char變量如果是被一個負的數(shù)給賦值了,就會自動加一個絕對值,變成正的。所以為了防止可移植性錯誤,就最好聲明這個變量是unsigned的(沒有正負符號)。
函數(shù)參數(shù)是char *,表示函數(shù)的參數(shù)是一個指針。
C語言中,函數(shù)的定義格式:函數(shù)返回值類型 函數(shù)名 (形參列表)。
void swap(int *,int *);和void swap(int *a,int *b)中viod都是swap函數(shù)的返回值類型,viod表示返(1)回值類型是空(即不返回任何值)或者(2)返回值是任意的類型。
把函數(shù)的返回值的類型設置為char類型的指針就可以了。
1、swap函數(shù)一般是一個程序員自定義函數(shù),是實現(xiàn)兩個變量數(shù)值的交換。比如:int a = 2;int b =3;swap(a,b); //一般用到變量數(shù)值交換,交換后a=3 b = 2;通過使用臨時變量實現(xiàn)交換。
2、swap函數(shù)一般是一個程序員自定義函數(shù)。通常是實現(xiàn)兩個變量數(shù)值的交換,用法比較廣泛。可使用臨時變量實現(xiàn)交換;可通過臨時指針變量實現(xiàn)交換;可借助指針加入臨時變量來實現(xiàn)交換。
3、swap函數(shù)一般是一個程序員自定義函數(shù)。通常是實現(xiàn)兩個變量數(shù)值的交換。比如 int a = 2;int b =3;swap(a,b); //一般用到變量數(shù)值交換,交換后a=3 b = 2;實現(xiàn)的方法多種多樣。
4、swap函數(shù)一般是一個程序員自定義函數(shù)。通常是實現(xiàn)兩個變量數(shù)值的交換。swap1(x,y);printf(swap1: x:%d,y:%d\n,x,y);//形參傳值,不能交換,實際傳過去是拷貝的一份,沒改變主函數(shù)中x,y。
本文題目:為什么C語言swap函數(shù) c語言swap
URL標題:http://chinadenli.net/article40/depdiho.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站導航、網站排名、微信小程序、網頁設計公司、定制開發(fā)、外貿建站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)