指標
指標 類型變數會保留資料物件或函數的位址。 指標可以參照任何一種資料類型的物件; 它不能參照位元欄位或參照。
指標的一些常見用法如下:
- 存取動態資料結構,例如鏈結清單、樹狀結構及佇列。
- 存取結構或 C++ 類別的陣列或成員的元素。
- 以字串形式存取字元陣列。
- 將變數的位址傳遞至函數。 (在 C + + 中,您也可以使用參照來執行此動作。) 透過透過變數位址來參照變數,函數可以變更該變數的內容。
請注意,類型限定元 volatile
和 const
的放置會影響指標宣告的語意。 如果任一限定元出現在 *
之前,則宣告元會說明指向 type-qualified 物件的指標。 如果任一限定元出現在 *
與 ID 之間,則宣告元會說明 type-qualifed 指標。
下表提供指標宣告的範例。
宣告 | 說明 |
---|---|
long *pcoat; |
pcoat 是指向具有類型 long 之物件的指標 |
extern short * const pvolt; |
pvolt 是指向具有類型 short 之物件的常數指標 |
extern int volatile *pnut; |
pnut 是指向具有 volatile 限定元之 int 物件的指標 |
float * volatile psoup; |
psoup 是 volatile 指向具有類型之物件的指標 float |
enum bird *pfowl; |
pfowl 是 bird 類型之列舉物件的指標 |
char (*pvish)(void); |
pvish 是不採用任何參數並傳回 char 之函數的指標 |
nullptr_t pnull; |
pnull 是空值指標,未指向任何有效的物件或函數。 |