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