• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

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

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

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

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

    本文引用地址:http://www.czjhyjcfj.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 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 乌拉特后旗| 信丰县| 师宗县| 灵山县| 自治县| 鹤壁市| 江达县| 高雄县| 阜阳市| 政和县| 邯郸县| 钟祥市| 永泰县| 新绛县| 遵化市| 湘阴县| 静乐县| 土默特左旗| 漳平市| 贵定县| 平和县| 沂源县| 大理市| 甘肃省| 永宁县| 雷山县| 永顺县| 泸水县| 商南县| 岑溪市| 左权县| 嵩明县| 家居| 沾益县| 梁平县| 腾冲县| 景泰县| 循化| 凤凰县| 临颍县| 承德县|