



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、函數(shù)的參數(shù)不僅可以是整型、實型、字符型等數(shù)據(jù),還可以是變量的指針,它將一個變量的首地址從主調(diào)函數(shù)傳送到另一個函數(shù)中,以間接的方式,實現(xiàn)了函數(shù)間數(shù)據(jù)的雙向傳遞。譚浩強先生用一個簡單的例子:輸入兩個整數(shù),按大小順序輸出,用函數(shù)處理,說明了指針的這類應(yīng)用。 1、【例】輸入的兩個整數(shù)按大小順序輸出, 用函數(shù)處理,而且用指針類型的數(shù)據(jù)作函數(shù)參數(shù)。swap(int *p1,int *p2) int temp; temp=*p1; *p1=*p2; *p2=temp;main() int a,b;
2、160; int *pointer_1,*pointer_2; scanf("%d,%d",&a,&b); pointer_1=&a;pointer_2=&b; if(a<b) swap(pointer_1,pointer_2); printf("n%d,%dn&qu
3、ot;,a,b);對程序的說明: swap是用戶定義的函數(shù),它的作用是交換兩個變量(a和b)的值。swap函數(shù)的形參p1、p2是指針變量。程序運行時,先執(zhí)行main函數(shù),輸入a和b的值。然后將a和b的地址分別賦給指針變量pointer_1和pointer_2,使pointer_1指向a,pointer_2指向b。 接著執(zhí)行if語句,由于ab,因此執(zhí)行swap函數(shù)。注意實參pointer_1和pointer_2是指針變量,在函數(shù)調(diào)用時,將實參變量的值傳遞給形參變量。
4、采取的依然是“值傳遞”方式。因此虛實結(jié)合后形參p1的值為&a,p2的值為&b。這時p1和pointer_1指向變量a,p2和pointer_2指向變量b。 接著執(zhí)行執(zhí)行swap函數(shù)的函數(shù)體使*p1和*p2的值互換,也就是使a和b的值互換。函數(shù)調(diào)用結(jié)束后,p1和p2不復(fù)存在(已釋放)如圖。最后在main函數(shù)中輸出的a和b的值是已經(jīng)過交換的值。進一步分析如下: 表面上看,由于a和b是main()的局部變量,他們的作用域就是main()的函數(shù)體,因此a,
5、b對于swap()是不可見的,即swap()不能對a和b賦值,也不能使用a和b中的數(shù)據(jù)進行運算; 但是,當(dāng)我們通過使用指針參數(shù)pointer1和pointer2,將&a、&b這2個地址從main()傳入了swap();那么,swap()通過該地址,就可以找到main()的a,b,從而使得swap()就象main()一樣,可以直接對a、b賦值,或直接用a、b中的值進行運算。 這樣一來,主調(diào)函數(shù)main()可以存取a、b,而被調(diào)函數(shù)swap()通過傳入的地址,也可以存取a、b。我們說a、b在main()和swap()間被共享了。 既然變量都被共享
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度教育貸款借款居間服務(wù)合同協(xié)議書
- 2025年度商務(wù)保密合同版:企業(yè)內(nèi)部商業(yè)秘密保護與競業(yè)限制合同
- 2025年度出國教育機構(gòu)勞務(wù)派遣合同
- 2025年度農(nóng)村宅基地買賣與鄉(xiāng)村旅游開發(fā)合同
- 2025年度離婚協(xié)議中子女撫養(yǎng)費調(diào)整協(xié)議書
- 2025年度刑事附帶民事訴訟委托代理協(xié)議書
- 2025年度少兒素質(zhì)提升輔導(dǎo)班家長協(xié)議
- 商業(yè)空間裝修合同質(zhì)量要求
- 2025年度工廠生產(chǎn)工人勞動權(quán)益保障協(xié)議書
- 2025年度休閑農(nóng)業(yè)園場地?zé)o償使用合同
- 關(guān)于布郎芬布倫納發(fā)展心理學(xué)生態(tài)系統(tǒng)理論
- 我們身邊的法律故事課件
- 執(zhí)行律師服務(wù)方案
- GB 24544-2023墜落防護速差自控器
- 2023年11月上海市教育委員會教育技術(shù)裝備中心公開招考3名工作人員筆試歷年高頻考點(難、易錯點薈萃)附帶答案詳解
- 煤礦違章行為及預(yù)防
- 幼兒園中班下學(xué)期語言繪本-沙灘上
- 電氣工程師生涯人物訪談報告
- 無人機在公安領(lǐng)域的應(yīng)用
- 水力學(xué)電子教案
- 國家重點保護古生物化石及產(chǎn)地名錄(2011年)
評論
0/150
提交評論