




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、CONTENTS 目 錄提出問(wèn)題 引入新課自主學(xué)習(xí) 明確考點(diǎn)案例分析 交流提升仿真演練 體驗(yàn)探索提出問(wèn)題 引入新課PART 01數(shù)組包含若干個(gè)元素,各元素在內(nèi)存中都占用內(nèi)存單元,都有一個(gè)相應(yīng)的地址,哪如何通過(guò)指針變量來(lái)引用數(shù)組中的元素呢?提出問(wèn)題 引入新課自主學(xué)習(xí) 明確考點(diǎn)PART 02定義一個(gè)指向數(shù)組元素的指針變量,目的是為了通過(guò)指針變量對(duì)數(shù)組元素進(jìn)行引用和相關(guān)的操作。但由于數(shù)組分為兩個(gè)層次,整個(gè)數(shù)組和組成數(shù)組的各個(gè)元素,因此在建立指針變量與數(shù)組之間的指向關(guān)系時(shí),會(huì)有兩種不同的情況:考點(diǎn)一:指向一維數(shù)組的指針變量1)數(shù)組的指針是指向整個(gè)數(shù)組的起始地址,即數(shù)組的第一個(gè)元素的地址;2)指針指向一
2、維數(shù)組元素的地址。2、指向一維數(shù)組的指針變量的兩種形式:(1)將整個(gè)數(shù)組的地址賦值給指針變量: = ;例如:int a10; /*定義a為包含10個(gè)整型數(shù)據(jù)的數(shù)組*/int *p; /*定義p為指向整型變量的指針*/p=&a0;或p=a;/*C語(yǔ)言規(guī)定,數(shù)組名代表數(shù)組的第一個(gè)元素的地址*/p=&a0;表示把a(bǔ)0元素的地址或?yàn)閿?shù)組的首地址賦給指針變量p,p指向a數(shù)組的第一個(gè)元素的地址,使指針變量指向數(shù)組的首個(gè)元素的地址,并非將數(shù)組元素的值賦給p。(2)將數(shù)組某元素的地址賦值給指針變量: 格式為:= &表示把數(shù)組某個(gè)元素的地址賦給指針變量,讓指針變量指向數(shù)組的某個(gè)元素。in
3、t a10 , *p ;p = &a2 ;考點(diǎn)一:指針的算術(shù)運(yùn)算(1)地址偏移法。地址偏移法是在指針變量的基礎(chǔ)上加上偏移地址形成新元素的地址,再通過(guò)指針運(yùn)算符進(jìn)行引用??键c(diǎn)二:通過(guò)指針變量引用數(shù)組元素【例1】、通過(guò)指針變量p對(duì)數(shù)組a的每一個(gè)元素進(jìn)行輸入和輸出的操作。main() int *p, i, a10; p=a; for (i=0;i10;i+) scanf(%d,p+i); for (i=0;i10;i+,p+i) printf(%d,*p); (2)下標(biāo)法:如果p的初值為&a0,則: (1)p+i和a+i就是ai的地址,或者說(shuō)它們指向a數(shù)組的第i個(gè)元素。(2)*(p+
4、i)或*(a+i)就是p+i或a+i所指向的數(shù)組元素,即ai。例如,*(p+5)或*(a+5)就是a5。(3)指向數(shù)組的指針變量也可以帶下標(biāo),如pi與*(p+i)等價(jià)。考點(diǎn)二:通過(guò)指針變量引用數(shù)組元素【例2】輸出數(shù)組中的全部元素。(下標(biāo)法)main()int a5,i,*p;p=a; for(i=0;i5;i+) pi=i; for(i=0;i5;i+) printf(a%d=%d ,i,ai);(3)指針移動(dòng)法。指針移動(dòng)法是通過(guò)對(duì)指針變量進(jìn)行運(yùn)算,改變其指向,使其在數(shù)組范圍內(nèi)移動(dòng),指向不同的元素來(lái)達(dá)到引用的目的。運(yùn)行結(jié)果為:a0=0 a1=1 a2=2 a3=3a 4=4【例3】把一個(gè)一維數(shù)
5、組中的元素按初始順序的倒序排列。main ( ) int a10=12,3,45,6,20,30,78,50,66,81; int *p ,*q , i , t ; printf(數(shù)組元素的初始順序:n); for( p=a , i=0 ; i10 ; i+ ) printf(%4d,*(p+); for( p=a,q=a+9,i=0 ; i5; i+,p+,q- ) t=*p; *p=*q; *q=t; printf(n數(shù)組元素的最終順序:n); for( p=a , i=0 ; i 10 ; i+ ) printf(%4d,*(p+);下標(biāo)法:用 ai 的形式存取數(shù)組元素。地址法:用p+i
6、或a+i表示元素的地址, *(a+i)、pi或*(p+i)的形式表示數(shù)組元素。指針?lè)ǎ河弥羔樧兞縫指向數(shù)組的首地址,然后通過(guò)移動(dòng)指針存取數(shù)組元素。 如 p=a, p+。考點(diǎn)三:數(shù)組元素的訪(fǎng)問(wèn)形式若有數(shù)組及指針定義 int a5,*p=a;下標(biāo)法: a0 a1 a2 a3a4指針?lè)? *p *(p+1)*(p+2) *(p+3)*(p+4) p0 p1p2p3 p4 *a*(a+1) *(a+2)*(a+3)*(a+4)元素地址 p p+1 p+2p+3p+4 a a+1a+2 a+3a+4數(shù)組元素的訪(fǎng)問(wèn)小結(jié):假設(shè) int i,a10,*p=a; 表現(xiàn)形式含義&a0 ap 一維數(shù)組首地址
7、&a i a+ip+i 一維數(shù)組下標(biāo)為 i 的元素地址a0*a*p 一維數(shù)組下標(biāo)為 0 的元素的值a i *(a+i)*(p+i) 一維數(shù)組下標(biāo)為 i 的元素的值考點(diǎn)三:數(shù)組元素的訪(fǎng)問(wèn)形式注意:數(shù)組名是一個(gè)常量地址,不允許重新賦值。指針變量是一個(gè)變量地址,可以重新賦值。例如有定義:int a10,*p; p=a;p+合法;但a+不合法(a是數(shù)組名,代表數(shù)組首地址,是常數(shù)地址。)考點(diǎn)四:指針運(yùn)算符的自增自減運(yùn)算形式 (*p)+ 表示先取*p的值a0,再使所指的元素的值加1。+(*p) 即+*p:表示先使*p的值a0加1,再取*p的值a0。*(p+)即*p+是先取*p的值,后使p加1,指向
8、下一個(gè)元素。*(+p)即 *+p是先使p加1,指向下一個(gè)元素,再取*p的值??键c(diǎn)四:指針運(yùn)算符的自增自減運(yùn)算形式 main() int a3,*p=a; a0=10;a1=20;a2=30;printf(“%dn”,*p+); printf(“%dn”,*+p); 答案為:10 30 例如:對(duì)照下列程序,請(qǐng)仔細(xì)思考為什么是這樣的答案? main() int a3,*p=a; a0=10;a1=20;a2=30;printf(“%dn”, +*p); printf(“%dn”,*+p); 答案為:11 20 main() int a3,*p=a; a0=10;a1=20;a2=30; print
9、f(%dn,(*p)+); printf(%dn,a0); printf(%dn,*+p); 答案為:10 11 20案例分析 交流提升PART 03【例1】有以下程序運(yùn)行后的輸出結(jié)果是( )。 main() char s=159,*p; p=s; printf(%c,*p+);printf(%c,*p+); A)15B)16C)12D)59【例2】、有以下程序運(yùn)行后的輸出結(jié)果是( ) #include main() int a=1,2,3,4,5,6,7,8,9,10,11,12,*p=a+5,*q=NULL; *q=*(p+5); printf(%d %dn,*p,*q); A)運(yùn)行后報(bào)錯(cuò)
10、 B)6 6C)6 11D)5 10 【例3】設(shè)有定義語(yǔ)句 int x6=2,4,6,8,5,7,*p=x,i; 要求依次輸出x數(shù)組6個(gè)元素中的值,不能完成此操作的語(yǔ)句是( )A)for(i=0;i6;i+) printf(%2d,*(p+);B)for(i=0;i6;i+) printf(%2d,*(p+i);C)for(i=0;i6;i+) printf(%2d,*p+);D)for(i=0;i6;i+) printf(%2d,(*p)+); 仿真演練,體驗(yàn)探索PART 041、寫(xiě)出以下程序運(yùn)行后的輸出結(jié)果是( )main() int a=1,2,3,4,5; int *p=a+3; printf(“%d,%d,%dn”,*p,*(p+1),*p+3); 2、寫(xiě)出以下程序運(yùn)行后的輸出結(jié)果是( )main() int a4=10,20,30,40,*p=a; printf(%dn,*p+); printf(%dn,+*
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 22602:2019 FR Information technology - Learning,education and training - Competency models expressed in MLR
- 【正版授權(quán)】 IEC 61340-4-6:2025 EN-FR Electrostatics - Part 4-6: Standard test methods for specific applications - Wrist straps
- 2025至2030中國(guó)電焊帽行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國(guó)電子壓力計(jì)行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國(guó)瑜伽工作室系統(tǒng)行業(yè)市場(chǎng)深度研究及發(fā)展前景投資可行性分析報(bào)告
- 高等教育科研成果轉(zhuǎn)化管理機(jī)制研究
- 酒店安全生培訓(xùn)
- 施工項(xiàng)目資源管理(培訓(xùn))
- 心理健康教育培訓(xùn)實(shí)施總結(jié)
- 探尋教育心理學(xué)掌握學(xué)生心靈鑰匙
- 湖北武漢洪山區(qū)招考聘用社區(qū)干事235人模擬檢測(cè)試卷【共1000題含答案解析】
- 14 《中國(guó)胰島素泵治療指南(2021年版)》要點(diǎn)解讀
- 12J4-2 《專(zhuān)用門(mén)窗》標(biāo)準(zhǔn)圖集
- 膩?zhàn)訉?shí)驗(yàn)方法
- GB/T 18487.1-2015電動(dòng)汽車(chē)傳導(dǎo)充電系統(tǒng)第1部分:通用要求
- GB 30603-2014食品安全國(guó)家標(biāo)準(zhǔn)食品添加劑乙酸鈉
- 2023年義烏市雙江湖開(kāi)發(fā)集團(tuán)有限公司招聘筆試題庫(kù)及答案解析
- 通信建設(shè)工程質(zhì)量和安全生產(chǎn)監(jiān)督檢查表最新文檔
- 醫(yī)學(xué)高級(jí)職稱(chēng)評(píng)審答辯報(bào)告PPT模板
- 肺栓塞的診斷和治療
- DB4451-T 1-2021《地理標(biāo)志產(chǎn)品+鳳凰單叢(樅)茶》-(高清現(xiàn)行)
評(píng)論
0/150
提交評(píng)論