IOS學(xué)習(xí)筆記數(shù)組指針的概念及定義_第1頁(yè)
IOS學(xué)習(xí)筆記數(shù)組指針的概念及定義_第2頁(yè)
IOS學(xué)習(xí)筆記數(shù)組指針的概念及定義_第3頁(yè)
IOS學(xué)習(xí)筆記數(shù)組指針的概念及定義_第4頁(yè)
IOS學(xué)習(xí)筆記數(shù)組指針的概念及定義_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、IOS學(xué)習(xí)筆記005-數(shù)組指針的概念及定義IOS學(xué)習(xí)筆記-數(shù)組指針的概念及定義1 )數(shù)組指針:指向數(shù)組元素的指針數(shù)組元素指針:一個(gè)變量有地址,一個(gè)數(shù)組包含若干個(gè)元素,每個(gè)數(shù)組元素都有相對(duì)應(yīng)的地址,指針變量可以指向數(shù)組元素(把某一元素的地址放到一個(gè)指針變量中)所謂數(shù)組元素的指針就是數(shù)組元素的地址??梢杂靡粋€(gè)指針變量指向一個(gè)數(shù)組元素。inta10=1,3,5,7,9,11,13,15,17,19;int*p;p=&a0;等價(jià)于int*p=a;或int*p=&a0;等價(jià)于p=a;注意:數(shù)組名a不帶表整個(gè)數(shù)組,只代表數(shù)組首元素的地址。"p=a;"的作用是"

2、吧a數(shù)組的首元素的地址賦給指針變量p",而不是"把數(shù)組a各個(gè)元素的值賦給p"2 )數(shù)組指針初始化和使用方法a、使用指針引用數(shù)組元素在指針指向元素時(shí),允許一下運(yùn)算:加一個(gè)整數(shù)(用+或+=),如p+1減一個(gè)整數(shù)(用-或-=),如p-1自加運(yùn)算,如p+,+p自減運(yùn)算,如p-,-p兩個(gè)指針想減,如p1-p2(只有pl和p2都指向同一數(shù)組中的元素時(shí)才有意義)b、注意;如果p的初值為&a0,則p+i和a+i就是數(shù)組元素ai的地址,或者說(shuō),它們指向a數(shù)組序號(hào)為i的元素。數(shù)組指針的作用:使用數(shù)組指針間接訪(fǎng)問(wèn)數(shù)組的元素。數(shù)組指針的定義:int*p;數(shù)組指針的初始化:inta

3、4=1,2,3,4;int*p=a;/數(shù)組指針,定義了一個(gè)指針變量p指向數(shù)組a的首地址(也是第一個(gè)元素a0的首地址),p指向數(shù)組的第一個(gè)元素等價(jià)于:int*p=&a0;數(shù)組指針如何訪(fǎng)問(wèn)數(shù)組的元素:a)p+1表示指向數(shù)組的下一個(gè)元素b)p-1表示指向數(shù)組的上一個(gè)元素結(jié)論:引用一個(gè)數(shù)組元素,可用下面兩種方法:a)下標(biāo)法:如ai的形式b)指針?lè)ǎ喝?(a+i)或*(p+i)c)a是常量(a+錯(cuò)誤),p是變量(p+正確),總結(jié):對(duì)于一個(gè)一維數(shù)組來(lái)說(shuō)A)獲取ai的地址方法:a)&ai;/直接取地址b)a+i;c)p+i;B)獲取ai的值的方法:a)ai;b)*(a+i);c)*(p+i)

4、;d)*(&ai);3 )應(yīng)用:逆序數(shù)組思路:/用指針將數(shù)組a中的n個(gè)整數(shù)按相反順序存放。/將a0與an-1對(duì)換/注意:ai=*(a+i);代碼:/逆序一個(gè)數(shù)組voidnixuArray(inta,intlen)/定義一個(gè)數(shù)組指針int*p=a;/定義下標(biāo)inti=0,j=len-1;inttemp;while(i<j)/交換ai和ajtemp=*(p+i);*(p+i)=*(p+j);*(p+j)=temp;/修改下標(biāo)i+;j-;voidmain()intarr10=1,2,3,4,5,6,7,8,9,10;/調(diào)用函數(shù)nixuArray()nixuArray(arr,10);f

5、or(inti=0;i<10;i+)printf("%dt",arri);4 )一維指針數(shù)組a、一維指針數(shù)組一個(gè)數(shù)組的元素值為指針則是指針數(shù)組。指針數(shù)組時(shí)一組有序的指針的集合。指針數(shù)組的所有元素都必須是具有相同存儲(chǔ)類(lèi)型和指向相同數(shù)據(jù)類(lèi)型的指針變量。指針數(shù)組說(shuō)明的一般形式為:類(lèi)型說(shuō)明符*數(shù)組名數(shù)組長(zhǎng)度其中類(lèi)型說(shuō)明符為指針值所指向的變量的類(lèi)型。例如:int*pa4;表示pa是一個(gè)指針數(shù)組,它有四個(gè)數(shù)組元素,每個(gè)元素值都是一個(gè)指針,指向整型變量。b、指針數(shù)組的使用:inta=3,b=4,c=5;int*pa3=&a,&b,&c;5 )指針變量之間的算

6、術(shù)運(yùn)算:只有指向同一數(shù)組的兩個(gè)指針變量之間才能進(jìn)行運(yùn)算,否則運(yùn)算毫無(wú)意義。a、兩指針變量減法運(yùn)算兩指針變量想減所得之差是兩個(gè)指針?biāo)赶驍?shù)組元素之間相差的元素個(gè)數(shù)。實(shí)際上是兩個(gè)指針值(地址)想減之差在除以該數(shù)組元素長(zhǎng)度(字節(jié)數(shù))。b、指針變量之間的算術(shù)運(yùn)算兩個(gè)指針之間的減法運(yùn)算常見(jiàn)的用法:兩個(gè)指針都指向同一個(gè)數(shù)組i、判斷兩個(gè)指針變量指向的元素是否連續(xù)ii、判斷兩個(gè)指針變量之間相隔幾個(gè)元素。如果兩個(gè)指針變量指向同一個(gè)元素,那么他們想減的結(jié)果是0判斷兩個(gè)指針變量指向的元素是否相鄰(連續(xù)),他們想減的結(jié)果是1的絕對(duì)值兩個(gè)指針之間的關(guān)系運(yùn)算p1>p返回結(jié)果為1則p1在高位返回結(jié)果為。則p在高位或者

7、他們指向了同一個(gè)位置c、注意:兩指針之間只有減法運(yùn)算,沒(méi)有加、乘、除運(yùn)算6)用數(shù)組名訪(fǎng)問(wèn)二維數(shù)組a、用數(shù)組名訪(fǎng)問(wèn)二維數(shù)組inta34=1,3,5,7,9,11,13,15,17,19,21,23;a代表第0行首地址a+1代表第一行首地址a+2代表第二行首地址a+i代表行號(hào)為i的首行地址(按行變換)。*(a+1)相當(dāng)于&a10*(a+i)相當(dāng)于&ai0列指針:第一列的首地址第二列的首地址第三列的首地址第 i 列的首地址a0=&a00/a0+1=&a01/a0+2=&a02/a0+i=&a0i/7)二維數(shù)組指針定義、初始化a、二維數(shù)組名師指向行的,它

8、不能對(duì)如下說(shuō)明的指針變量p直接賦值:inta34=1,2,3,4,5,6,7,8,9,11,12,14,*p;其原因就是p與a的對(duì)象性質(zhì)不同,或者說(shuō)二者不是同一級(jí)指針。C語(yǔ)言可以通過(guò)定義數(shù)組指針的方法,使得一個(gè)指針變量與二維數(shù)組名具有相同的性質(zhì)。b、二維數(shù)組指針變量說(shuō)明的一般形式為:數(shù)據(jù)類(lèi)型(*指針變量名)二維數(shù)組列數(shù)其中"類(lèi)型說(shuō)明符"為所指數(shù)組的數(shù)據(jù)類(lèi)型。"*"表示其后的變量時(shí)指針類(lèi)型。c、如果要將二維數(shù)組賦給一指針,則應(yīng)這樣賦值:inta34;int(*p)4;/該語(yǔ)句是定義一個(gè)數(shù)組指針,指向含4個(gè)元素的一維數(shù)組。p=a;/將該二維數(shù)組的首地址賦給p

9、,也就是a0或&ap+;/該語(yǔ)句執(zhí)行過(guò)后,也就是p=p+1;p跨過(guò)a0指向了行a1所以數(shù)組指針也稱(chēng)指向一維數(shù)組的指針,亦稱(chēng)行指針。d、二維數(shù)組指針行指針,用來(lái)指向二維數(shù)組的每一行,存放的是行的首地址定義格式:數(shù)據(jù)類(lèi)型(*行指針變量名)數(shù)組第二維的長(zhǎng)度二維數(shù)組指針的初始化inta23;intb22;floatf144;/假設(shè)定義一個(gè)指向數(shù)組a的一個(gè)行指針,則寫(xiě)法如下:/a=&a0=&a00=a0int(*ap)3=a;二維數(shù)組指針的使用*(*(p+i)+j);/就是獲取二維數(shù)組的每個(gè)元素代碼示例:voidmain()inta34=1,3,5,7,9,11,13,15,17,19,21,23;int(*p)4=a;for(inti=0;i<3;i+)for(intj=0;j<4;j+)printf("%dt",*(*p+i)+j);printf("n");/輸出結(jié)果為:/1357/9111315/171921238)指針數(shù)組和二維數(shù)組指針的區(qū)別a、指針數(shù)組和二維數(shù)組指針變量的區(qū)別應(yīng)該注意指針數(shù)組和二維數(shù)組指針變量的區(qū)別。雖然這兩者都可以用來(lái)表示二維數(shù)組,但是其表示方法和意義是不同的。二維數(shù)組指針變量時(shí)單個(gè)的變量,其一般形式中"(*指針變量名)"兩

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論