指標 (電腦科學)
外表

指標(英文:pointer,粵拼:粵化口語音:poin1 taa4*2)廣義上係指任何「指住另外一件嘢嘅位置嘅值」[1]:56;狹義上,做程式編寫嘅時候講嘅指標,通常係指指住記憶體入面嘅某件嘢嘅位址。喺高階程式語言,指標係代表某樣嘢嘅位址嘅一類資料類型,好多程式語言都有。視乎語言,「嘢」 可以包括數據、物件、甚至係子程式。
有咩價值
[編輯]喺概念上,指標同位址係同一樣嘢(低階語言叫位址,高階語言叫指標,因為佢 「指」 住某件嘢),分別係指標通常帶有類別,例如整數嘅指標同字串嘅指標係唔同類型,通常唔可以溝亂用。
非常高階嘅語言通常唔鼓勵用指標,甚至唔支援指標。
喺相對低階嘅 C 語言,指標同陣列概念模糊,好多情況下兩樣嘢幾乎可以溝亂用。
雖然低階嘅組合語言並冇指標呢種資料類型,但係如果某個位址存放嘅數據係另外一件嘢嘅完整位址,前者都可以叫做指標,呢種用法喺組合語言嘅標籤名都好常見。
函數使用
[編輯]喺大部分程式語言入便,如果將變數直接傳入函數,傳入嘅其實只係變數嘅「副本」。所以喺函數入面做嘅改動只會影響個副本,唔會改到原本嗰個變數。例如以下 C 程式碼:
void change(int x) {
x = 10;
}
int main() {
int a = 5;
change(a);
// a 依然係 5
}
若果想喺函數入面改到原變數,就要用「指標」將變數嘅記憶體位址傳入函數。以下係一個例子:
void change(int* p) {
*p = 10;
}
int main() {
int a = 5;
change(&a);
// a 而家變咗 10
}
睇埋
[編輯]引述
[編輯]- ↑ IEEE Standards Collection: Software Engineering (1997年版). IEEE. 1997. ISBN 1-55937-898-0.