日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

      首頁編程開發(fā)VC|VC++ → 走進匯編指令來看C/C++指針初始化的金科玉律

      走進匯編指令來看C/C++指針初始化的金科玉律

      相關軟件相關文章發(fā)表評論 來源:西西整理時間:2012/12/19 14:35:49字體大。A-A+

      作者:西西點擊:0次評論:0次標簽: 匯編指令

      • 類型:編程輔助大。224KB語言:中文 評分:3.3
      • 標簽:
      立即下載

      講述兩點:

      1、匯編下的p與*p

      2、有關指針初始化的金科玉律

      int* p;

      p與*p,相信很多人都在這犯過迷糊,最后在死記硬背中記住了他們的區(qū)別,但實際怎樣,也沒有親自到內(nèi)存中看過,這里,就帶您到內(nèi)存中看看,到匯編中溜溜,看看p與*p的廬山真面目。

      簡單的程序:

      #include <iostream>

      using namespace std;

      int main()

      {

      int i = 1;

      int* p=&i;

      }

      先看匯編代碼分析:

      (如果您不理解為什么[ebp-4][ebp-8]處存放的是函數(shù)第一和第二個局部變量,您可先閱讀《C++反匯編代碼分析–函數(shù)調(diào)用 》)

      看到很多人問 指針p指向一個地址,那指針p有自己的地址么?答案是肯定的,通過上面的分析可以看出 p的地址是0012ff40,此地址處存放的是變量i的地址。除了通過這種方式,其實還有一種可輸出的方式查看p自己的地址,int*(*q)=&p;則q存放的就是p的地址,可以自己輸出查看一下。

      再從內(nèi)存驗證以下是否真的如此:
      我們已經(jīng)分析出來p的地址是0012ff40,可以直接在內(nèi)存觀察器中看一下,如圖:

      最后一個小驗證,呵呵,直接在變量監(jiān)視器中看(其實是最簡單的):

      Ok,認識他們了吧,呵呵。在學習C++指針時,很多人都云里霧里的,一會兒地址一會兒值的,老師說是啥,咱就背啥,最多也就是輸出看一下。我自己好奇心很強,什么事情都喜歡刨根問底,那會兒最想掰開內(nèi)存看看,到底是不是這樣,但那時我不會,特憋屈感覺。如果你也跟我一樣的話,看那,就是了,呵呵。其實自我感覺搞懂指針還是很有用的,特別是在學習跟安全有關的東西。

      2、指針的初始化

      只講一點,關于使用指針的金科玉律:一定要在對指針應用解除引用操作符(*)之前,將指針初始化一個確定的、適當?shù)牡刂贰?/p>

      依然是一個簡單的小程序:

      #include <iostream>

      using namespace std;

      void main()

      {

      int i = 1;

      int* p;

      //int*p = &i;

      *p=1;

      }

      //一共兩種情況,一種是之前給了指針一個確定的、適當?shù)牡刂,然后賦值1,一種是沒有,直接賦值1

      僅介紹指針初始化的這條金科玉律,至于初始化的其他操作,應該沒有什么了,翻翻書,好多,不再贅述。

        相關評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)
        推薦文章

        沒有數(shù)據(jù)

          沒有數(shù)據(jù)
        最新文章
          沒有數(shù)據(jù)