99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

底層解析C指針(一)

CHANBAEK ? 來(lái)源:博客園-LSWen ? 作者:博客園-LSWen ? 2023-02-15 14:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

指針是C語(yǔ)言中的精髓部分,同樣也是C語(yǔ)言的難點(diǎn)所在,下面從最底層來(lái)分析C指針。

首先先放節(jié)論,這樣可能會(huì)節(jié)省部分人的閱讀時(shí)間。

對(duì)于一級(jí)指針:

poYBAGPsf2WAZ0amAAB-Mt8035c089.png

對(duì)于二級(jí)指針:

poYBAGPsf2WAFb0BAACmObcSN3E546.png

同理我們有:

n級(jí)指針

pYYBAGPsf2WAfhFjAACRuL9Vzm8513.png

需要注意的是,上面的所有指針都需要初始化,如果看懂了上面的圖,也就知道為什么必須初始化的原因了,其實(shí)指針實(shí)質(zhì)上是不存在的,編譯器會(huì)將其全部替換為地址,正因?yàn)槿绱?,?dǎo)致很多初學(xué)者被各種符號(hào)暈頭轉(zhuǎn)向,如同普通變量一樣,指針也是一種變量,說(shuō)到底,變量其實(shí)也不存在,在編譯器編譯的過(guò)程中,所有的變量會(huì)被替換掉,真正有用的只是變量的值, 如果想詳細(xì)了解此類(lèi)容,讀者可以看編譯原理這本書(shū)。

下面我們來(lái)驗(yàn)證上面的結(jié)論

poYBAGPsf2WANRfCAAAViDS9VMk169.png

上面我采用了直接強(qiáng)制轉(zhuǎn)換的方式來(lái)分配地址,這個(gè)并不是每次執(zhí)行都會(huì)成功,原因是強(qiáng)行分配的地址很可能恰好被使用或者是內(nèi)存碎片再或者沒(méi)有進(jìn)行字節(jié)對(duì)齊,這些都會(huì)導(dǎo)致強(qiáng)行分配地址時(shí)失敗,因此可以多進(jìn)行測(cè)試,下面得到輸出。

poYBAGPsf2WADoitAAAQtFZnoFY977.png

現(xiàn)在無(wú)法知道,為了直觀,我們直接打開(kāi)Debug調(diào)試,同時(shí)設(shè)置斷點(diǎn),現(xiàn)在我們打開(kāi)Memory dump,如圖所示

pYYBAGPsf2WAV0udAAAfYS9uSWw751.png

x86結(jié)構(gòu)的內(nèi)存結(jié)構(gòu)為大端模式,低字節(jié)放到高地址。

此時(shí)我們輸入0x60fef2,點(diǎn)擊"GO",可以看到內(nèi)存中的數(shù)據(jù)如下圖所示:

pYYBAGPsf2WAM1j_AAAlhJEhr7o681.png

可以看到內(nèi)存地址為0x60fef2處的數(shù)據(jù)為5

然后輸入0x60fefc點(diǎn)擊"GO",可以看到內(nèi)存中的數(shù)據(jù)如下圖所示:

pYYBAGPsf2WAKRFAAAAlPNUripA667.png

可以看到內(nèi)存地址為0x60fefc處的數(shù)據(jù)為0x60fef2

可以看到這個(gè)完全符合上面的節(jié)論,

需要說(shuō)明的是,我們寫(xiě)程序時(shí)雖然使用了 p, &p, *p這三個(gè)符號(hào),但是計(jì)算機(jī)編譯過(guò)程中只有兩個(gè)有用的數(shù)據(jù)

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3121

    瀏覽量

    75238
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141587
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    484

    瀏覽量

    71178
  • C指針
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    6480
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    C語(yǔ)言指針詳細(xì)解析

    可以對(duì)數(shù)據(jù)本身,也可以對(duì)存儲(chǔ)數(shù)據(jù)的變量地址進(jìn)行操作。 指針個(gè)占據(jù)存儲(chǔ)空間的實(shí)體在這段空間起始位置的相對(duì)距離值。在C/C++語(yǔ)言中,
    發(fā)表于 09-14 10:03

    C指針詳解

    底層的軟件打交道。這個(gè)時(shí)候,指針便體現(xiàn)出它獨(dú)特的魅力。指針的知識(shí)很多,有本經(jīng)典的書(shū)叫《C
    發(fā)表于 12-29 07:20

    C語(yǔ)言指針電子教程

    本資料是份不錯(cuò)的關(guān)于C語(yǔ)言指針的電子教程,希望對(duì)大家有所幫助... 指針簡(jiǎn)介 指針C語(yǔ)言中廣
    發(fā)表于 07-30 16:00 ?77次下載

    C指針習(xí)題答案配C指針

    C指針習(xí)題答案配C指針
    發(fā)表于 09-07 14:29 ?6次下載
    <b class='flag-5'>C</b>和<b class='flag-5'>指針</b>習(xí)題答案配<b class='flag-5'>C</b>和<b class='flag-5'>指針</b>

    C語(yǔ)言指針解析

    指針的概念 指針個(gè)特殊的變量,它里面存儲(chǔ)的數(shù)值被解釋成為內(nèi)存里的個(gè)地址。要搞清個(gè)
    發(fā)表于 11-02 11:38 ?2次下載

    c語(yǔ)言函數(shù)指針定義,指針函數(shù)和函數(shù)指針的區(qū)別

     往往,我們提到指針函數(shù)和函數(shù)指針的時(shí)候,就有很多人弄不懂。下面就由小編詳細(xì)為大家介紹C語(yǔ)言中函數(shù)指針,
    發(fā)表于 11-16 15:18 ?3866次閱讀

    基于C語(yǔ)言中指針的基本用法解析

    C語(yǔ)言中其它的知識(shí)都學(xué)得可以,唯獨(dú)指針搞不懂。如果是這樣,我可以很負(fù)責(zé)的告訴你,對(duì)于這門(mén)編程語(yǔ)言,你等于是沒(méi)學(xué)。所以學(xué)好指針對(duì)于初學(xué)者是非常重要的?;蛟S你會(huì)覺(jué)得它有點(diǎn)抽象,但是當(dāng)你徹底理解了
    的頭像 發(fā)表于 01-09 15:12 ?5002次閱讀

    從最底層的內(nèi)存存儲(chǔ)空間開(kāi)始帶你了解C語(yǔ)言指針

    、前言 二、變量與指針的本質(zhì) 三、指針的幾個(gè)相關(guān)概念 四、指向不同數(shù)據(jù)類(lèi)型的指針 五、總結(jié) 、前言 如果問(wèn)
    的頭像 發(fā)表于 02-02 10:40 ?2712次閱讀
    從最<b class='flag-5'>底層</b>的內(nèi)存存儲(chǔ)空間開(kāi)始帶你了解<b class='flag-5'>C</b>語(yǔ)言<b class='flag-5'>指針</b>

    C語(yǔ)言-指針定義與使用

    指針在很多書(shū)本上都是當(dāng)做重點(diǎn)來(lái)介紹,作為C語(yǔ)言的靈魂,項(xiàng)目里指針無(wú)處不在。 這篇文章介紹指針的基本用法。
    的頭像 發(fā)表于 08-14 10:02 ?1636次閱讀

    C語(yǔ)言指針詳細(xì)解析

    可以對(duì)數(shù)據(jù)本身,也可以對(duì)存儲(chǔ)數(shù)據(jù)的變量地址進(jìn)行操作。 指針個(gè)占據(jù)存儲(chǔ)空間的實(shí)體在這段空間起始位置的相對(duì)距離值。在C/C++語(yǔ)言中,
    的頭像 發(fā)表于 11-14 16:53 ?2573次閱讀
    <b class='flag-5'>C</b>語(yǔ)言<b class='flag-5'>指針</b>詳細(xì)<b class='flag-5'>解析</b>

    C語(yǔ)言中的懸空指針和野指針是什么意思?

    提起C語(yǔ)言大部分開(kāi)發(fā)者很自然就會(huì)想到指針二字,沒(méi)錯(cuò),作為C的核心和靈魂,它的地位咱們就不再贅述了,今天我們想跟大家講的是指針中的兩個(gè)特有名詞:“懸空
    的頭像 發(fā)表于 02-09 17:20 ?1414次閱讀

    底層解析C指針(二)

    篇主要討論了C指針的本質(zhì),但并沒(méi)有解釋指針的類(lèi)型問(wèn)題,這次我們重點(diǎn)來(lái)討論指針的類(lèi)型與指針內(nèi)存
    的頭像 發(fā)表于 02-15 14:48 ?938次閱讀
    <b class='flag-5'>底層</b><b class='flag-5'>解析</b><b class='flag-5'>C</b><b class='flag-5'>指針</b>(二)

    詳解C語(yǔ)言指針底層基本原理

    說(shuō)到指針,估計(jì)還是有很多小伙伴都還是云里霧里的,有點(diǎn)“知其然,而不知其所以然”。但是,不得不說(shuō),學(xué)了指針,C語(yǔ)言才能算是入門(mén)了。指針C語(yǔ)言
    的頭像 發(fā)表于 04-06 10:43 ?1764次閱讀

    C++智能指針底層實(shí)現(xiàn)原理

    C++智能指針的頭文件: #include 1. shared_ptr: 智能指針從本質(zhì)上來(lái)說(shuō)是個(gè)模板類(lèi),用類(lèi)實(shí)現(xiàn)對(duì)指針對(duì)象的管理。 te
    的頭像 發(fā)表于 11-09 14:32 ?1069次閱讀
    <b class='flag-5'>C</b>++智能<b class='flag-5'>指針</b>的<b class='flag-5'>底層</b>實(shí)現(xiàn)原理

    C語(yǔ)言指針學(xué)習(xí)筆記

    本文從底層內(nèi)存分析,徹底讓讀者明白C語(yǔ)言指針的本質(zhì)。
    的頭像 發(fā)表于 11-05 17:40 ?638次閱讀
    <b class='flag-5'>C</b>語(yǔ)言<b class='flag-5'>指針</b>學(xué)習(xí)筆記