語言程序設(shè)計(jì)基礎(chǔ)指針型_第1頁
語言程序設(shè)計(jì)基礎(chǔ)指針型_第2頁
語言程序設(shè)計(jì)基礎(chǔ)指針型_第3頁
語言程序設(shè)計(jì)基礎(chǔ)指針型_第4頁
語言程序設(shè)計(jì)基礎(chǔ)指針型_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

指針C語言中最難理解和掌握的內(nèi)容之CC語言眾多優(yōu)秀特征的集中體(一)概C語言中,可以用’&’C語言支持char,int等以及高級(jí)的數(shù)據(jù)類型如枚舉,結(jié)構(gòu)體,聯(lián)5-17ap為指針型,則有下表5-5所示的關(guān)系。5-5ap值示意圖中a為字符0xFF00,則a10100001,對(duì)應(yīng)的十六進(jìn)制0xA1.p0xFF10,16位,因此一個(gè)指針類型的變量其內(nèi)5-17p0000000010100001(0x00A1)0000000010100010(0x00A2)。... 0x00A1(0000000010100x00A2(000000001010..0000p.1001 1010 000010100000000110005-17圖5-9中的指針p為例p所指向的內(nèi)存地址0x00A1到底應(yīng)取幾個(gè)單元長度的數(shù)據(jù)?這char型,int型還是其他類型的呢?請讀者先記下上述問題,在學(xué)習(xí)完指針型變量(二)和賦在C語言中,一個(gè)指針類型的變量可以用圖5-18所示的方法,即采用“方框+*+類型,如char,int,double等等,也可以是一些高級(jí)的類型,如指針,結(jié)構(gòu)等;方框后加入’*’號(hào),與方框一起表示了“變量1”的數(shù)據(jù)類型為指向“方框型”的數(shù)據(jù)類型。字符*變量5-18中方框內(nèi)的數(shù)據(jù)類型便決定了“變量1”這個(gè)指針型變量的內(nèi)容所確定的內(nèi)存空間的數(shù)據(jù)類型,或者方框內(nèi)的數(shù)據(jù)類型決定了“變量1”所指內(nèi)存的數(shù)據(jù)類型。圖5-19給出了圖5-18中指針型變量時(shí)的語句的各部分功能,其中方框內(nèi)的數(shù)據(jù)類型決定了聲字符*變量指指型量*變量指所指內(nèi)存 指針變量標(biāo)記符名圖5-18指針類型變量的方法 圖5-19指針類型的語句的各部分功能現(xiàn)在我們可以得到先前問題的答案了:對(duì)了,就是圖5-18和5-19中的“方框”決定一個(gè)指針變量所指內(nèi)存的數(shù)據(jù)類型。結(jié)合圖5-175-185-19進(jìn)行說明,如當(dāng)采用“0001(0x00A1)是一個(gè)具體的內(nèi)存地址,該內(nèi)存地址0x00A1的數(shù)據(jù)為char型,值為00000001(0x01);當(dāng)采用“char**p;”時(shí),可以理解為“((char*)*)p”一個(gè)指針型變量p的時(shí)候,我們可以確定((char*)*)為一個(gè)“指向(char*)型的指針”,p0000000010100001(0x00A1)是一個(gè)具體的內(nèi)存地址,該內(nèi)存地址0x00A1的數(shù)據(jù)為(char*)0001C語言中取得由一個(gè)指定內(nèi)存地址內(nèi)容的操作符為’*’,編者建議讀者不要將此處介紹的’*’操作符與上文介紹的指針時(shí)用到的指針標(biāo)記符’*’,將二者看作不同的符號(hào)加5-17p,“*pp所指內(nèi)存空間的內(nèi)容。具體來說,如果p是指向字符型的指針變量(語句為“char*p”),則此時(shí)自0x00A1起一個(gè)單自0x00A1起四個(gè)單元長度的數(shù)據(jù)即是*p的值;如果p是指向指針的指針變量(語句為圖5-20中,介紹了C語言中指針型變量和為指針型變量賦值的語法格式,其中圖的值賦給了“變量1”;5-21(e)則了指針型變量“變量1”同時(shí)對(duì)其進(jìn)行了賦值。指針類型變量指針類型變量指針類型變量1,變量變量1=值變量1=變量指針類型變量1=值void char char* char* 圖5-20指針型變量的和賦 5-20中的(c)、(e)中,對(duì)指針型變量進(jìn)行了賦值,其中等號(hào)右側(cè)的“值”是一個(gè)地址于圖5-17而言值為0xFF00)。變量a并賦值為1;語句(4)了兩個(gè)“字符型”的指針型變量p1和p2,此時(shí)p1和p2的值為隨機(jī)數(shù);語句(5)將變a的地址p1;語句(6)將變p1的值賦給p2;語句(7)聲明了一個(gè)“字符型”的指針型變量p3并賦值將p1的值賦給了p3。(三)指針類型的相互轉(zhuǎn)換C語言中,由于各種指針類型的變量其所占字節(jié)長度相同,所以相互之間轉(zhuǎn)化起來

000000110000001100000011000000110000 void short short*p1=&a; char*p2=(char void short short*p1=&a; char*p2=(char a0x33040x33040x33050x000x115-22中的語句(4)了一個(gè)只向short的指針型變量p1,并將a的地址賦給了p1,則p1的內(nèi)容x302恰好為變量a的地址。圖5-22中了一個(gè)指向char的指針型變量p2,并且將p1的值賦p2,這里采用了指針類類型的轉(zhuǎn)換,可以看出只需要將所要轉(zhuǎn)換成的指針類型用括號(hào)達(dá)式優(yōu)先級(jí)算。。p2的你內(nèi)存0x33005-23所示,其內(nèi)0x3304,是變量p1的內(nèi)容,也即是變量a的地址。這里需要注意,由于p1是“short*”型,而p2是“char*”型,因此“*p1”的值為0x1100,而“*p2”的值為0x100。(三)指5-22所示的內(nèi)存示意圖,并對(duì)本段文字重新閱讀理解。內(nèi)存地址

內(nèi)存地址

溫馨提示

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

評(píng)論

0/150

提交評(píng)論