關於指針的名字

1、指針名字及其含義的記憶

定義方法:類+名字

類:名字背後實際所指的值的類型

名字:引用某個值的途徑

“類+名字”兩個部分可以靈活劃分

如 int*ptr,可劃分爲:int   *ptr,即*ptr是個int

                   也可劃分爲:int*  ptr ,即ptr是個int*

又如int**ptr ,可劃分爲:int   **ptr,即**ptr是個int

                   也可劃分爲:int*  *ptr ,即*ptr是個int*

                   還可劃分爲:int**  ptr,即ptr是個int**

兩個名字中少一個*的名字背後的值是多一個*的名字背後的值的地址,即ptr是*ptr的地址


2、彙編中寄存器名字與指針的聯繫

可把寄存器當做高級語言裏的普通變量,寄存器名字是變量名,寄存器存的值是變量的值,通過名字來訪問值

寄存器作爲一個類型未定的普通變量,可以是一個指針(存地址),彙編代碼中某寄存器外出現幾重括號,就把它理解爲幾重指針

如出現          movl (%ebx)%ecx

                      movl (%ecx)%eax

則把%ebx理解爲 T**類型,譬如 T** ebx

把%ecx理解爲T*類型

一個括號相當於對指針名字進行一次解引用,如(%ebx)~ *ebx


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章