新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機c語言教程:C51運算符和表達式(指針和地址運算符)

        單片機c語言教程:C51運算符和表達式(指針和地址運算符)

        作者: 時間:2012-09-12 來源:網絡 收藏

        我們學習數據類型時,學習過類型,知道它是一種存放指向另一個數據的的變量類型。C中一個十分重要的概念,也是學習C中的一個難點。對于將會在第九課中做詳細的講解。在這里我們先來了解一下C中供給的兩個專門用于指針和符:

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

        * 取內容

        取內容和地址的一般形式分別為:

        變量 = * 指針變量 指針變量 = 目標變量

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

        下面來看一個例子,并用一個圖表和實例去簡單理解指針的使用方法和含義。

        設有兩個 unsigned int 變量 ABC 處 CBA 存放在 0x0028,0x002A 中 另有一個指針變量 portA 存放在 0x002C 中 那么我們寫這樣一段程序去看看*,的運算結果

        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; //定時器 1 定時方式 2

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

        TI = 1;

        TR1 = 1; //啟動定時器

        ABC = 10; //設初值 CBA = 20;

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

        *Port = 100; //更改指針變量 Port 所指向的地址的內容

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

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

        CBA = *Port; //把當前 Port 所指的地址的內容賦給變量 CBA

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

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

        }

        程序初始時

        地址

        說明

        0x00

        0x002DH

        0x00

        0x002CH

        0x00

        0x002BH

        0x00

        0x002AH

        0x0A

        0x0029H

        0x00

        0x0028H

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

        0x29H 兩個字節的內存空間,低位字節會放入高地址中,所以 0x28H 中放入 0x00,0x29H 中 放入 0x0A

        地址

        說明

        0x00

        0x002DH

        0x00

        0x002CH

        0x00

        0x002BH

        0x00

        0x002AH

        0x0A

        0x0029H

        ABC 為 int 類型占用兩字節

        0x00

        0x0028H

        c語言相關文章:c語言教程



        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 沛县| 兴城市| 霍林郭勒市| 本溪市| 顺平县| 砚山县| 盐源县| 七台河市| 东乡| 钟祥市| 鲁甸县| 中宁县| 永和县| 象州县| 永吉县| 庆安县| 虹口区| 开原市| 龙海市| 庆元县| 东乡| 佛山市| 翁源县| 绥芬河市| 中卫市| 古蔺县| 阳城县| 盐边县| 博野县| 乐业县| 莫力| 监利县| 宜兰县| 永顺县| 临西县| 虹口区| 东安县| 揭西县| 库尔勒市| 嘉定区| 辉南县|