地址名稱是程式設計層面的概念,是為了方便開發人員使用記憶體的內容而引入的。程式被編譯稱機器語言之後其實就不存在地址名稱的概念,而只有地址值。
簡單的理解,指標其實就是記憶體的地址。由於我們要訪問記憶體,記憶體肯定要有個編號,這樣我們才知道訪問哪裡的記憶體。有人可能會說,你不是在前面說透過變數名稱進行訪問嗎?是的,但是變數名稱只是在我們程式設計層面使用記憶體的方式,真正到作業系統層面都是透過記憶體的地址進行訪問的。
瞭解了指標的概念之後,那我們現在談一下什麼是指標變數。我們知道變數是儲存資料的,從名稱上可以推測出來指標變數就是儲存指標的。沒錯,指標變數就是儲存指標的變數,也就是儲存記憶體地址的變數。
為了便於說明什麼是指標及指標變數,我們透過上述進行說明。假設我們有一個整形變數age,其中的值是0x12345,資料儲存在0x1000(這裡是為了便於說明,實際位置值的格式大概類似這樣,0x7ffc6a95fb14)的位置。
現在我們想用另外一個變數(比如名稱為age_tmp)將該變數的地址儲存起來,而且可以透過age_tmp訪問age變數中的內容,那該怎麼辦?沒錯,就是定義一個指標變數。如圖1所示,age_tmp就是這個指標變數,它在0x0800的位置,其內部儲存的值是age的地址。好了,廢了半天話,那具體怎麼編寫程式碼呢?下面我們透過一個例子說明。
如下是程式執行後的結果,可以看出值的關係與圖1是完全一致的。
好了,關於指標的相關內容就先介紹到這裡,關於指標足夠專門寫一本書了。
地址名稱是程式設計層面的概念,是為了方便開發人員使用記憶體的內容而引入的。程式被編譯稱機器語言之後其實就不存在地址名稱的概念,而只有地址值。
簡單的理解,指標其實就是記憶體的地址。由於我們要訪問記憶體,記憶體肯定要有個編號,這樣我們才知道訪問哪裡的記憶體。有人可能會說,你不是在前面說透過變數名稱進行訪問嗎?是的,但是變數名稱只是在我們程式設計層面使用記憶體的方式,真正到作業系統層面都是透過記憶體的地址進行訪問的。
瞭解了指標的概念之後,那我們現在談一下什麼是指標變數。我們知道變數是儲存資料的,從名稱上可以推測出來指標變數就是儲存指標的。沒錯,指標變數就是儲存指標的變數,也就是儲存記憶體地址的變數。
為了便於說明什麼是指標及指標變數,我們透過上述進行說明。假設我們有一個整形變數age,其中的值是0x12345,資料儲存在0x1000(這裡是為了便於說明,實際位置值的格式大概類似這樣,0x7ffc6a95fb14)的位置。
現在我們想用另外一個變數(比如名稱為age_tmp)將該變數的地址儲存起來,而且可以透過age_tmp訪問age變數中的內容,那該怎麼辦?沒錯,就是定義一個指標變數。如圖1所示,age_tmp就是這個指標變數,它在0x0800的位置,其內部儲存的值是age的地址。好了,廢了半天話,那具體怎麼編寫程式碼呢?下面我們透過一個例子說明。
如下是程式執行後的結果,可以看出值的關係與圖1是完全一致的。
好了,關於指標的相關內容就先介紹到這裡,關於指標足夠專門寫一本書了。