指針總結(jié)讓你不再害怕指針_第1頁
已閱讀1頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、讓你不再害怕指針前言:復(fù)雜類型說明要了解指針多多少少會(huì)出現(xiàn)一些比較復(fù)雜的類型,所以我先介紹一下如何完全理解一個(gè)復(fù)雜類型,要理解復(fù)雜類型其實(shí)很簡單,一個(gè)類型里會(huì)出現(xiàn)很多運(yùn)算符,他們也像普通的表達(dá)式一樣,有優(yōu)先級(jí),其優(yōu)先級(jí)和運(yùn)算優(yōu)先級(jí)一樣,所以我總結(jié)了一下其原則:從變量名處起,根據(jù)運(yùn)算符優(yōu)先級(jí)結(jié)合,一步一步分析。下面讓我們先從簡單的類型開始慢慢分析吧:intp這是一個(gè)普通的整型變量intp首先從P處開始先與結(jié)合所以說明P是一個(gè)指針然后再與i

2、nt結(jié)合說明指針?biāo)赶虻膬?nèi)容的類型為int型.所以P是一個(gè)返回整型數(shù)據(jù)的指針intp[3]首先從P處開始先與[]結(jié)合說明P是一個(gè)數(shù)組然后與int結(jié)合說明數(shù)組里的元素是整型的所以P是一個(gè)由整型數(shù)據(jù)組成的數(shù)組intp[3]首先從P處開始先與[]結(jié)合因?yàn)槠鋬?yōu)先級(jí)比高所以P是一個(gè)數(shù)組然后再與結(jié)合說明數(shù)組里的元素是指針類型然后再與int結(jié)合說明指針?biāo)赶虻膬?nèi)容的類型是整型的所以P是一個(gè)由返回整型數(shù)據(jù)的指針?biāo)M成的數(shù)組int(p)[3]首先從P處開

3、始先與結(jié)合說明P是一個(gè)指針然后再與[]結(jié)合(與“()“這步可以忽略只是為了改變優(yōu)先級(jí))說明指針?biāo)赶虻膬?nèi)容是一個(gè)數(shù)組然后再與int結(jié)合說明數(shù)組里的元素是整型的.所以P是一個(gè)指向由整型數(shù)據(jù)組成的數(shù)組的指針intp首先從P開始先與結(jié)合說是P是一個(gè)指針然后再與結(jié)合說明指針?biāo)赶虻脑厥侵羔樔缓笤倥cint結(jié)合說明該指針?biāo)赶虻脑厥钦蛿?shù)據(jù).由于二級(jí)指針以及更高級(jí)的指針極少用在復(fù)雜的類型中所以后面更復(fù)雜的類型我們就不考慮多級(jí)指針了最多只考慮一級(jí)

4、指針.intp(int)從P處起先與()結(jié)合說明P是一個(gè)函數(shù)然后進(jìn)入()里分析說明該函數(shù)有一個(gè)整型變量的參數(shù)然后再與外面的int結(jié)合說明函數(shù)的返回值是一個(gè)整型數(shù)據(jù)int(p)(int)從P處開始先與指針結(jié)合說明P是一個(gè)指針然后與()結(jié)合說明指針指向的是一個(gè)函數(shù)然后再與()里的int結(jié)合說明函數(shù)有一個(gè)int型的參數(shù)再與最外層的int結(jié)合說明函數(shù)的返回類型是整型所以P是一個(gè)指向有一個(gè)整型參數(shù)且返回類型為整型的函數(shù)的指針int(p(int))

5、[3]可以先跳過不看這個(gè)類型過于復(fù)雜從P開始先與()結(jié)合說明P是一個(gè)函數(shù)然后進(jìn)入()里面與int結(jié)合說明函數(shù)有一個(gè)整型變量參數(shù)然后再與外面的結(jié)合說明函數(shù)返回的是一個(gè)指針然后到最外面一層,先與[]結(jié)合說明返回的指針指向的是一個(gè)數(shù)組然后再與結(jié)合說明數(shù)組里的元素是指針然后再與int結(jié)合說明指針指向的內(nèi)容是整型數(shù)據(jù).所以P是一個(gè)參數(shù)為一個(gè)整數(shù)據(jù)且返回一個(gè)指向由整型指針變量組成的數(shù)組的指針變量的函數(shù).說到這里也就差不多了,我們的任務(wù)也就這么多,理

6、解了這幾個(gè)類型,其它的類型對(duì)我們來說也是小菜了,不過我們一般不會(huì)用太復(fù)雜的類型,那樣會(huì)大大減小程序的可讀性,請(qǐng)慎用,這上面的幾種類型已經(jīng)足夠我們用了.1、細(xì)說指針指針是一個(gè)特殊的變量,它里面存儲(chǔ)的數(shù)值被解釋成為內(nèi)存里的一個(gè)地址。要搞清一個(gè)指針需要搞清指針的四方面的內(nèi)容:指針的類型、指針?biāo)赶虻念愋?、指針的值或者叫指針?biāo)赶虻膬?nèi)存區(qū)、指針本身所占據(jù)的內(nèi)存區(qū)。讓我們分別說明。先聲明幾個(gè)指針放著做例子:例一:(1)intptr(2)ptr(3

7、)intptr(4)int(ptr)[3](5)int(ptr)[4]a.指針的類型從語法的角度看,你只要把指針聲明語句里的指針名字去掉,剩下的部分就是這個(gè)指針的類型。這是指針本身所具有的類型。讓我們看看例一中各個(gè)指針的類型:(1)intptr指針的類型是int(2)ptr指針的類型是(3)intptr指針的類型是intintarray[20]=0intptr=arrayf(i=0iintmain()a[20]=“You_are_a_g

8、irl“p=aptr=printf(“p=%dn“p)printf(“ptr=%dn“ptr)printf(“ptr=%dn“ptr)printf(“ptr=%cn“ptr)ptrprintf(“ptr=%dn“ptr)printf(“ptr=%dn“ptr)printf(“ptr=%cn“ptr)誤區(qū)一、輸出答案為Y和o誤解:ptr是一個(gè)的二級(jí)指針當(dāng)執(zhí)行ptr時(shí),會(huì)使指針加一個(gè)sizeof(),所以輸出如上結(jié)果這個(gè)可能只是少部分人的結(jié)

9、果。誤區(qū)二、輸出答案為Y和a誤解:ptr指向的是一個(gè)類型當(dāng)執(zhí)行ptr時(shí),會(huì)使指針加一個(gè)sizeof()(有可能會(huì)有人認(rèn)為這個(gè)值為1,那就會(huì)得到誤區(qū)一的答案這個(gè)值應(yīng)該是4參考前面內(nèi)容)即那進(jìn)行一次取值運(yùn)算不就指向數(shù)組中的第五個(gè)元素了嗎那輸出的結(jié)果不就是數(shù)組中第五個(gè)元素了嗎答案是否定的。正解:ptr的類型是指向的類型是一個(gè)類型該指向的地址就是p的地址(時(shí)會(huì)使指針加一個(gè)sizeof(),即那(&p4)指向哪呢這個(gè)你去問上帝吧,或者他會(huì)告訴你在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論