跳去內容

指標 (電腦科學)

出自維基百科,自由嘅百科全書
指標嘅圖解

指標英文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
}

睇埋

[編輯]

引述

[編輯]
  1. IEEE Standards Collection: Software Engineering (1997年版). IEEE. 1997. ISBN 1-55937-898-0.