首先,我們知道:每一個變數都具有一個唯一的記憶體位址,以及一個變數的值。而所謂的指標,就代表其變數值所儲存的,是某個變數的記憶體位址。
那麼,指標有什麼用處呢?
或許你還記得,在先前我們曾經提到過的「陣列」。其實,陣列就是指標的一個實現。在使用陣列時,我們所使用的陣列名稱,實際上就是一個指標變數。
而這個指標所指向的,就是這一群陣列元素的最前端。而陣列的索引值則代表的是指標的偏移,也就是指標所指位置後的第幾個元素。
除此之外,指標也能夠在某些特定的資料結構(data structure)中,扮演控制存取資料元素,或是連結記憶體的角色。
例如在我曾經提過的堆疊、佇列、與連結串列中,指標都具有相當大的功用。
儘管指標如此便利,但也因此帶來一些不必要的問題。例如:我們可能會因為不當的指標偏移,使得程式不正確的覆蓋掉記憶體所存的值。即使是程式經驗的老手,也可能會因為指標的誤用,導致難以發現的程式錯誤。
也就因為如此,在某些程式語言(例如 Java)中,指標就被廢除、為其他方法所替代了。
0 回覆:
張貼留言