<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機C語(yǔ)言教程:C51指針的使用

單片機C語(yǔ)言教程:C51指針的使用

作者: 時(shí)間:2013-03-04 來(lái)源:網(wǎng)絡(luò ) 收藏

就是指變量或數據所在的存儲區地址。如一個(gè)字符型的變量 STR 存放在內存單元DATA 區的 51H 這個(gè)地址中,那么 DATA 區的 51H 地址就是變量 STR 的。在 C 是一個(gè)很重要的概念,正確有效的指針類(lèi)型的數據,能更有效的表達復雜的數據 結構,能更有效的數組或變量,能方便直接的處理內存或其它存儲區。指針之所以 能這么有效的操作數據,是因為無(wú)論程序的指令、常量、變量或特殊寄存器都要存放在內 存單元或相應的存儲區中,這些存儲區是按字節來(lái)劃分的,每一個(gè)存儲單元都能用唯一的 編號去讀或寫(xiě)數據,這個(gè)編號就是常說(shuō)的存儲單元的地址,而讀寫(xiě)這個(gè)編號的動(dòng)作就叫做尋 址,通過(guò)尋址就能訪(fǎng)問(wèn)到存儲區中的任一個(gè)能訪(fǎng)問(wèn)的單元,而這個(gè)功能是變量或數組等 是不可能代替的。C 也因此引入了指針類(lèi)型的數據類(lèi)型,專(zhuān)門(mén)用來(lái)確定其他類(lèi)型數據的 地址。用一個(gè)變量來(lái)存放另一個(gè)變量的地址,那么用來(lái)存放變量地址的變量稱(chēng)為“指針變量”。 如用變量 STRIP 來(lái)存放文章開(kāi)頭的 STR 變量的地址 51H,變量 STRIP 就是指針變量。下面 用一個(gè)圖表來(lái)說(shuō)明變量的指針和指針變量?jì)蓚€(gè)不一樣的概念。

本文引用地址:http://dyxdggzs.com/article/170572.htm

單片機C語(yǔ)言教程:C51指針的使用

變量的指針就是變量的地址,用取地址運算符‘’取得賦給指針變量。STR 就是把 變量 STR 的地址取得。用語(yǔ)句 STRIP = STR 就能把所取得的 STR 指針存放在 STRIP 指 針變量中。STRIP 的值就變?yōu)?51H??梢?jiàn)指針變量的內容是另一個(gè)變量的地址,地址所屬的 變量稱(chēng)為指針變量所指向的變量。

要訪(fǎng)問(wèn)變量 STR 除了能用‘STR’這個(gè)變量名來(lái)訪(fǎng)問(wèn)之外,還能用變量地址來(lái)訪(fǎng) 問(wèn)。方法是先用STR 取變量地址并賦于 STRIP 指針變量,然后就能用*STRIP 來(lái)對 STR 進(jìn)行訪(fǎng)問(wèn)了。‘*’是指針運算符,用它能取得指針變量所指向的地址的值。在上圖中指針 變量 STRIP 所指向的地址是 51H,而 51H 中的值是 40H,那么*STRIP 所得的值就是 40H。 指針變量之前也和使用其它類(lèi)型的變量那樣要求先定義變量,而且形式也相類(lèi)似,

一般的形式如下:

數據類(lèi)型 [存儲器類(lèi)型] * 變量名;

unsigned char xdata *pi //指針會(huì )占用二字節,指針自身存放在編譯器默認存儲區,指

向 xdata 存儲區的 char 類(lèi)型

unsigned char xdata * data pi; //除指針自身指定在 data 區,其它同上

int * pi; //定義為一般指針,指針自身存放在編譯器默認存儲區,占三個(gè)字節 在定義形式中“數據類(lèi)型”是指所定義的指針變量所指向的變量的類(lèi)型。“存儲器類(lèi)型”是編譯器編譯時(shí)的一種擴展標識,它是可選的。在沒(méi)有“存儲器類(lèi)型”選項時(shí),則定義為一般指針,如有“存儲器類(lèi)型”選項時(shí)則定義為基于存儲器的指針。限于 51 芯片的尋址范圍,指針變量最大的值為 0xFFFF,這樣就決定了一般指針在內存會(huì )占用 3 個(gè)字節,第一字節存 放該指針存儲器類(lèi)型編碼,后兩個(gè)則存放該指針的高低位址。而基于存儲器的指針因為不用 識別存儲器類(lèi)型所以會(huì )占一或二個(gè)字節,idata,data,pdata 存儲器指針占一個(gè)字節,code,xdata 則會(huì )占二個(gè)字節。由上可知,明確的定義指針,能節省存儲器的開(kāi)銷(xiāo),這在嚴格要求程序 體積的項目中很有用處。

指針的使用方法很多,限于篇幅以上只能對它做一些基礎的介紹。下面用在講述常量時(shí)的例程改動(dòng)一下,用以說(shuō)明指針的基本使用方法。

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


存儲器相關(guān)文章:存儲器原理



上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>