新聞中心
c語言 請問這個PPT的意思是不是說這樣用函數(shù)交換最終數(shù)組還是不會變的,為什么不變?
是的。這個PPT就是為了說明用void swap2(int x, int y)交換不了通過形參傳入的元素。

創(chuàng)新互聯(lián)服務項目包括慶安網(wǎng)站建設、慶安網(wǎng)站制作、慶安網(wǎng)頁制作以及慶安網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,慶安網(wǎng)站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到慶安省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
為什么交換不了?
因為void swap2(int x, int y)的形式參數(shù)是傳值模式。
C/C++語言規(guī)定:以傳值模式調用函數(shù),在調用過程中,函數(shù)需先將形參做一個拷貝,然后基于新的拷貝進行計算。
如上例,執(zhí)行調用swap2(a[0],a[1]),swap2會先將a[0]的值拷貝給x,將a[1]的值拷貝給y,然后在函數(shù)體內交換x、y的值,這樣對a[0]、a[1]毫無影響。
怎樣通過函數(shù)調用交換a[0]、a[1]的值?
答案是:通過傳引用調用,即將函數(shù)聲明為void swap2(int x, int y)。
C++語言規(guī)定:引用可以看作是變量的別名。別名類似于人的小名之類,一個人大名、小名雖不同,但都指的是這個人。
同樣如上例,執(zhí)行調用swap2(a[0],a[1]),swap2將x視作a[0]的別名、將y視作a[1]的別名,這樣在函數(shù)體內交換x、y的值,實際上交換的是a[0]、a[1]的值。
引用是C++語言引入的特性,C語言中沒有引用。若要用C語言實現(xiàn)通過函數(shù)交換a[0]、a[1]的值,怎么辦?
答案是:模擬傳引用調用,即將函數(shù)聲明為void swap2(int* xp, int* yp)。
模擬傳引用調用本質上仍是傳值調用,只不過傳入函數(shù)的是原始參數(shù)的地址。
同樣如上例,執(zhí)行調用swap2(a+0,a+1),a+0是a[0]的地址,a+1是a[1]的地址。相應地,swap將a[0]的地址值拷貝一份給xp,將a[1]的地址值拷貝一份給yp。函數(shù)體內,swap2通過xp、yp即a[0]、a[1]的地址的新拷貝,操縱a[0]、a[1]的值。
這種方式除了需要改造swap2的聲明,還需改造swap2的函數(shù)體,即其實現(xiàn)。
C語言編程…用遞歸函數(shù)編寫下列程序,按下面PPT的思路來
#include?stdio.h
#include?math.h
double?mysqrt(double?a,?double?x0)
{
if?(a0)return?-1;
double?x1?=?1.0?/?2?*?(x0?+?a?/?x0);
if?(fabs(x1?-?x0)??1e-5)return?x1;
return?mysqrt(a,?x1);
}
int?main()
{
double?a,?x0?=?1.0;
printf("Enter?a:");
scanf("%lf",?a);
printf("The?sqrt?of?%lf=%lf\n",?a,?mysqrt(a,?x0));
return?0;
}
C語言常用的函數(shù)有哪些
C語言庫函數(shù),常用庫函數(shù)有:
1、scanf格式輸入函數(shù)
2、printf格式輸出函數(shù)
3、systemdos命令函數(shù)
4、sort排序
5、main主函數(shù)
6、fgets文件讀取字符串函數(shù)
7、fputs文件寫入字符串函數(shù)
8、fscanf文件格式讀取函數(shù)
9、fprintf文件格式寫入函數(shù)
10、fopen打開文件函數(shù)
11、getchar輸入字符函數(shù)
12、putchar輸出字符函數(shù)
13、malloc動態(tài)申請內存函數(shù)
14、free釋放內存函數(shù)
15、abs求絕對值數(shù)學函數(shù)
16、sqrt求平方根數(shù)學函數(shù)
擴展資料
語言組成:
1、數(shù)據(jù)類型
C的數(shù)據(jù)類型包括:整型、字符型、實型或浮點型(單精度和雙精度)、枚舉類型、數(shù)組類型、結構體類型、共用體類型、指針類型和空類型。
2、常量與變量
常量其值不可改變,符號常量名通常用大寫。
變量是以某標識符為名字,其值可以改變的量。標識符是以字母或下劃線開頭的一串由字母、數(shù)字或下劃線構成的序列,請注意第一個字符必須為字母或下劃線,否則為不合法的變量名。變量在編譯時為其分配相應存儲單元。
3、數(shù)組
如果一個變量名后面跟著一個有數(shù)字的中括號,這個聲明就是數(shù)組聲明。字符串也是一種數(shù)組。它們以ASCII的NULL作為數(shù)組的結束。要特別注意的是,方括內的索引值是從0算起的。
4、指針
如果一個變量聲明時在前面使用 * 號,表明這是個指針型變量。換句話說,該變量存儲一個地址,而 *(此處特指單目運算符 * ,下同。C語言中另有 雙目運算符 *) 則是取內容操作符,意思是取這個內存地址里存儲的內容。指針是 C 語言區(qū)別于其他同時代高級語言的主要特征之一。
參考資料來源:百度百科-函數(shù)
本文題目:c語言的函數(shù)ppt c語言函數(shù)是由什么構成的
文章網(wǎng)址:http://www.dlmjj.cn/article/dosgghi.html


咨詢
建站咨詢
