下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機科學(xué)與技術(shù)系c語言實驗報告實驗名稱:指針及其應(yīng)用 日期: 得分: 指導(dǎo)老師:專業(yè): 班次: 姓名: 學(xué)號:實驗?zāi)康模?) 掌握變量的指針及其基本用法。(2) 掌握一維數(shù)組的指針及其基本用法。(3) 掌握指針變量作為函數(shù)的參數(shù)時,參數(shù)的傳遞過程及其用法。一 實驗內(nèi)容(1) 運行以下程序,并從中了解變量的指針和指針變量的概念。(2) 運行以下程序,觀察&a0、&ai和p的變化,然后回答以下問題:1. 程序的功能是什么?2. 在開始進入循環(huán)體之前,p指向誰?3. 循環(huán)每增加一次,p的值(地址)增加多少?它指向誰?4. 退出循環(huán)后,p指向誰?5. 你是否初步掌握了通過指針變量引用數(shù)組元素的方法?
2、(3) 先分析以下程序的運行結(jié)果,然后上機驗證,并通過此例掌握通過指針變量引用數(shù)組元素的各種方法。(4) 編寫函數(shù),將n個數(shù)按原來的順序的逆序排列(要求用指針實現(xiàn)),然后編寫主函數(shù)完成: 輸入10個數(shù); 調(diào)用此函數(shù)進行重排; 輸出重排后的結(jié)果。二 分析與討論(1) 指針的定義方法,指針和變量的關(guān)系。定義方法:數(shù)據(jù)類型 *指針變量名;如定義一個指向int型變量的指針int *p;則我們可以繼續(xù)寫如下代碼int a = 4;p = &a;printf(%d, *p);在這里,我們定義了一個變量a,我們把它理解為內(nèi)存空間連續(xù)的4個字節(jié)(int型占用4字節(jié)),則這4個字節(jié)的空間保存著一個數(shù)4。&是取地
3、址符號,即把變量a的地址(即這4個字節(jié)的首地址)賦給指針p(記住指針p的類型和變量a的類型要保持一致,否則的話,要進行類型轉(zhuǎn)換)。這樣子,指針p就保存著變量a的地址。我們?nèi)绻阎羔榩當(dāng)做內(nèi)存空間里面另外一個連續(xù)的4個字節(jié),那么這4個字節(jié)保存的數(shù)就是變量a的地址。printf(%d,*p)和printf(%d,a)的結(jié)果是一樣的。這里的*是取變量符號(與&剛好作用相反,通過變量的地址找到變量),與定義時int *p的*號作用不同(定義時的*表示該變量是個指針變量,而非是取它指向的變量)。(2) 數(shù)組和指針的關(guān)系。指針與數(shù)組是c語言中很重要的兩個概念,它們之間有著密切的關(guān)系,利用這種關(guān)系,可以增強
4、處理數(shù)組的靈活性,加快運行速度,本文著重討論指針與數(shù)組之間的聯(lián)系及在編程中的應(yīng)用。1指針與數(shù)組的關(guān)系 當(dāng)一個指針變量被初始化成數(shù)組名時,就說該指針變量指向了數(shù)組。如: char str20, ptr; ptr=str; ptr被置為數(shù)組str的第一個元素的地址,因為數(shù)組名就是該數(shù)組的首地址,也是數(shù)組第一個元素的地址。此時可以認(rèn)為指針ptr就是數(shù)組str(反之不成立),這樣原來對數(shù)組的處理都可以用指針來實現(xiàn)。如對數(shù)組元素的訪問,既可以用下標(biāo)變量訪問,也可以用指針訪問。 2指向數(shù)組元素的指針 若有如下定義:int a10, pa; pa=a; 則p=&a0是將數(shù)組第1個元素的地址賦給了指針變量p。
5、 實際上,c語言中數(shù)組名就是數(shù)組的首地址,所以第一個元素的地址可以用兩種方法獲得:p=&a0或p=a。這兩種方法在形式上相像,其區(qū)別在于:pa是指針變量,a是數(shù)組名。值得注意的是:pa是一個可以變化的指針變量,而a是一個常數(shù)。因為數(shù)組一經(jīng)被說明,數(shù)組的地址也就是固定的,因此a是不能變化的,不允許使用a、a或語句a=10,而pa、pa、pa=10則是正確的。由此可見,此時指針與數(shù)組融為一體。 3指針與一維數(shù)組 理解指針與一維數(shù)組的關(guān)系,首先要了解在編譯系統(tǒng)中,一維數(shù)組的存儲組織形式和對數(shù)組元素的訪問方法。 一維數(shù)組是一個線形表,它被存放在一片連續(xù)的內(nèi)存單元中。c語言對數(shù)組的訪問是通過數(shù)組名(數(shù)組
6、的起始地址)加上相對于起始地址的相對量(由下標(biāo)變量給出),得到要訪問的數(shù)組元素的單元地址,然后再對計算出的單元地址的內(nèi)容進行訪問。通常把數(shù)據(jù)類型所占單元的字節(jié)個數(shù)稱為擴大因子。 實際上編譯系統(tǒng)將數(shù)組元素的形式ai轉(zhuǎn)換成(ai),然后才進行運算。對于一般數(shù)組元素的形式:,編譯程序?qū)⑵滢D(zhuǎn)換成:(),其中下標(biāo)表達式為:下標(biāo)表達式擴大因子。整個式子計算結(jié)果是一個內(nèi)存地址,最后的結(jié)果為:=。由此可見,c語言對數(shù)組的處理,實際上是轉(zhuǎn)換成指針地址的運算。數(shù)組與指針暗中結(jié)合在一起。因此,任何能由下標(biāo)完成的操作,都可以用指針來實現(xiàn),一個不帶下標(biāo)的數(shù)組名就是一個指向該數(shù)組的指針。 4指針與多維數(shù)組 用指針變量可以
7、指向一維數(shù)組,也可以指向多維數(shù)組。但在概念上和使用上,多維數(shù)組的指針比一維數(shù)組的指針要復(fù)雜一些。 例如,在一個三維數(shù)組中,引用元素cijk的地址計算最終將換成:(ci)j)k)。了解了多維數(shù)組的存儲形式和訪問多維數(shù)組元素的內(nèi)部轉(zhuǎn)換公式后,再看當(dāng)一個指針變量指向多維數(shù)組及其元素的情況。 1 指向數(shù)組元素的指針變量 若有如下說明: int a34; int p; p=a; p是指向整型變量的指針;p=a使p指向整型二維數(shù)組a的首地址。 (p1)2)表示取a12的內(nèi)容;p表示取a01的內(nèi)容,因為p是指向整型變量的指針;p表示p的內(nèi)容加1,即p中存放的地址增加一個整型量的字節(jié)數(shù)2,從而使p指向下一個整型量a01。 2 指向由j個整數(shù)組成的一維數(shù)組的指針變量 當(dāng)指針變量p不是指向整型變量,而是指向一個包含j個元素的一維數(shù)組。如果p=a0,則p不是指向a01,而是指向a1。這時p的增值以一維數(shù)組的長度為單位。 5指針與字符數(shù)組 c語言中許多字符串操作都是由指向字符數(shù)組的指針及指針的運算來實現(xiàn)的。因為對于字符串來說,一般都是嚴(yán)格的順序存取方式,使用指針可以打破這種存取方式,更為靈活地處理字符串。 另
溫馨提示
- 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年度外墻保溫項目質(zhì)量監(jiān)督與施工承包協(xié)議4篇
- 2025年度文化產(chǎn)業(yè)實習(xí)生勞動合同書(二零二五版)4篇
- 2025版離婚協(xié)議中關(guān)于房產(chǎn)抵押及貸款合同處理范本8篇
- 2024版遠(yuǎn)洋貨運合同協(xié)議
- 2025版綠色環(huán)保社區(qū)共享租賃合同可下載4篇
- 2025版體育項目提成協(xié)議書(賽事贊助收入分成協(xié)議)3篇
- 2025年智慧倉儲與運輸管理系統(tǒng)合同3篇
- 長春師范高等??茖W(xué)?!稊?shù)據(jù)結(jié)構(gòu)與算法》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度海洋工程精密焊管采購合同范本3篇
- 電子設(shè)備的防雷防潮措施
- 2024生態(tài)環(huán)境相關(guān)法律法規(guī)考試試題
- 有砟軌道施工工藝課件
- 兩辦意見八硬措施煤礦安全生產(chǎn)條例宣貫學(xué)習(xí)課件
- 40篇短文搞定高中英語3500單詞
- 人教版高中數(shù)學(xué)必修二《第九章 統(tǒng)計》同步練習(xí)及答案解析
- 兒科護理安全警示教育課件
- 三年級下冊口算天天100題
- 國家中英文名稱及代碼縮寫(三位)
- 人員密集場所消防安全培訓(xùn)
- 液晶高壓芯片去保護方法
- 拜太歲科儀文檔
評論
0/150
提交評論