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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

7、)intptr(4)int(ptr)[3](5)int(ptr)[4]a.指針的類型從語法的角度看,你只要把指針聲明語句里的指針名字去掉,剩下的部分就是這個指針的類型。這是指針本身所具有的類型。讓我們看看例一中各個指針的類型:(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是一個的二級指針當(dāng)執(zhí)行ptr時,會使指針加一個sizeof(),所以輸出如上結(jié)果這個可能只是少部分人的結(jié)

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

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論