新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)c語(yǔ)言教程:C51運(yùn)算符和表達(dá)式(指針和地址運(yùn)算符)

        單片機(jī)c語(yǔ)言教程:C51運(yùn)算符和表達(dá)式(指針和地址運(yùn)算符)

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

        我們學(xué)習(xí)數(shù)據(jù)類(lèi)型時(shí),學(xué)習(xí)過(guò)類(lèi)型,知道它是一種存放指向另一個(gè)數(shù)據(jù)的的變量類(lèi)型。C中一個(gè)十分重要的概念,也是學(xué)習(xí)C中的一個(gè)難點(diǎn)。對(duì)于將會(huì)在第九課中做詳細(xì)的講解。在這里我們先來(lái)了解一下C中供給的兩個(gè)專(zhuān)門(mén)用于指針和符:

        本文引用地址:http://www.104case.com/article/170885.htm

        * 取內(nèi)容

        取內(nèi)容和地址的一般形式分別為:

        變量 = * 指針變量 指針變量 = 目標(biāo)變量

        取內(nèi)容是將指針變量所指向的目標(biāo)變量的值賦給左邊的變量;取地址是將目標(biāo)變量的地址賦給左邊的變量。要注意的是:指針變量中只能存放地址(也就是指針型數(shù)據(jù)), 一般情況下不要將非指針類(lèi)型的數(shù)據(jù)賦值給一個(gè)指針變量。

        下面來(lái)看一個(gè)例子,并用一個(gè)圖表和實(shí)例去簡(jiǎn)單理解指針的使用方法和含義。

        設(shè)有兩個(gè) unsigned int 變量 ABC 處 CBA 存放在 0x0028,0x002A 中 另有一個(gè)指針變量 portA 存放在 0x002C 中 那么我們寫(xiě)這樣一段程序去看看*,的運(yùn)算結(jié)果

        unsigned int data ABC _at_ 0x0028; unsigned int data CBA _at_ 0x002A; unsigned int data *Port _at_ 0x002C;

        #include at89x51.h>

        #include stdio.h>

        void main(void)

        {

        SCON = 0x50; //串行口方式 1,允許接收 TMOD = 0x20; //定時(shí)器 1 定時(shí)方式 2

        TH1 = 0xE8; //11.0592MHz 1200 波特率 TL1 = 0xE8;

        TI = 1;

        TR1 = 1; //啟動(dòng)定時(shí)器

        ABC = 10; //設(shè)初值 CBA = 20;

        Port = CBA; //取 CBA 的地址放到指針變量 Port

        *Port = 100; //更改指針變量 Port 所指向的地址的內(nèi)容

        printf(1: CBA=%dn,CBA); //顯示此時(shí) CBA 的值

        Port = ABC; //取 ABC 的地址放到指針變量 Port

        CBA = *Port; //把當(dāng)前 Port 所指的地址的內(nèi)容賦給變量 CBA

        printf(2: CBA=%dn,CBA); //顯示此時(shí) CBA 的值

        printf( ABC=%dn,ABC); //顯示 ABC 的值

        }

        程序初始時(shí)

        地址

        說(shuō)明

        0x00

        0x002DH

        0x00

        0x002CH

        0x00

        0x002BH

        0x00

        0x002AH

        0x0A

        0x0029H

        0x00

        0x0028H

        執(zhí)行 ABC = 10;向 ABC 所指的地址 0x28H 寫(xiě)入 10(0xA),因 ABC 是 int 類(lèi)型要占用 0x28H 和

        0x29H 兩個(gè)字節(jié)的內(nèi)存空間,低位字節(jié)會(huì)放入高地址中,所以 0x28H 中放入 0x00,0x29H 中 放入 0x0A

        地址

        說(shuō)明

        0x00

        0x002DH

        0x00

        0x002CH

        0x00

        0x002BH

        0x00

        0x002AH

        0x0A

        0x0029H

        ABC 為 int 類(lèi)型占用兩字節(jié)

        0x00

        0x0028H

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



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

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 鞍山市| 大田县| 乌海市| 冕宁县| 丰城市| 徐州市| 珠海市| 宁武县| 宝鸡市| 孟连| 柘城县| 江川县| 旬阳县| 兴安盟| 土默特左旗| 海原县| 库伦旗| 靖宇县| 衡水市| 黔西| 苗栗市| 南木林县| 涟源市| 绩溪县| 黄大仙区| 锦屏县| 额尔古纳市| 洪泽县| 舟曲县| 唐河县| 和政县| 临高县| 华安县| 三穗县| 桃园市| 南汇区| 旌德县| 邹城市| 南岸区| 龙州县| 安龙县|