<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • 嵌入式新仙境的個人空間 http://www.portaltwn.com/space-uid-108247.html [收藏] [復制] [RSS]

    博客

    指針

    已有 1648 次閱讀2014-3-8 11:04 |個人分類:技術論文| 嵌入式培訓, 深圳嵌入式開發, 寶安嵌入式培訓, 西鄉嵌入式

    指針是一個特殊的變量,它里面存儲的數值被解釋成為內存里的一個地址。 要搞清一個指針需要搞清指針的四方面的內容:指針的類型,指針所指向的 類型,指針的值或者叫指針所指向的內存區,還有指針本身所占據的內存區。讓我們分別說明。
    先聲明幾個指針放著做例子:
    例一:

    (1)int*ptr;

    (2)char*ptr;

    (3)int**ptr;

    (4)int(*ptr)[3];

    (5)int*(*ptr)[4];

    如果看不懂后幾個例子的話,請參閱我前段時間貼出的文章<<如何理解cc ++的復雜類型聲明>>。

    指針的類型
    從語法的角度看,你只要把指針聲明語句里的指針名字去掉,剩下的部分就是這個指針的類型。這是指針本身所具有的類型。讓我們看看例一中各個指針的類型:

    (1)int*ptr;//指針的類型是int*

    (2)char*ptr;//指針的類型是char*

    (3)int**ptr;//指針的類型是int**

    (4)int(*ptr)[3];//指針的類型是int(*)[3]

    (5)int*(*ptr)[4];//指針的類型是int*(*)[4]

    怎么樣?找出指針的類型的方法是不是很簡單?

    指針所指向的類型

    當你通過指針來訪問指針所指向的內存區時,指針所指向的類型決定了編譯器將把那片內存區里的內容當做什么來看待。

    從語法上看,你只須把指針聲明語句中的指針名字和名字左邊的指針聲明符*去掉,剩下的就是指針所指向的類型。例如:

    (1)int*ptr;//指針所指向的類型是int

    (2)char*ptr;//指針所指向的的類型是char

    (3)int**ptr;//指針所指向的的類型是int*

    (4)int(*ptr)[3];//指針所指向的的類型是int()[3]

    (5)int*(*ptr)[4];//指針所指向的的類型是int*()[4]

    在指針的算術運算中,指針所指向的類型有很大的作用。

    指針的類型(即指針本身的類型)和指針所指向的類型是兩個概念。當你對C越來越熟悉時,你會發現,把與指針攪和在一起的"類型"這個概念分成"指針的類型""指針所指向的類型"兩個概念,是精通指針的關鍵點


    路過

    雞蛋

    鮮花

    握手

    雷人

    評論 (0 個評論)

    facelist

    您需要登錄后才可以評論 登錄 | 立即注冊

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    返回頂部
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷