Pointer

#Pointer - 指標

顧名思義 : 指的是記憶體 address

&var (用 & 去取 var 這個變數的記憶體位址, Address-of operator)

*ptr (用 * 去取 ptr 這個記憶體位址的值, Dereference operator)

同樣的概念套用在array 上 -

宣告一個陣列之後,陣列名稱用來參考至陣列的第一個元素的記憶體位址

宣告:

type *ptr

type* ptr

compiler 是根據 type 做 Pointer arithmetic

具備兩種操作 :

指標所指的記憶體 address

指標所指向位址之資料 - 使用 Dereference operator (*) 做存取

怎麼印指標的東西

printf("%p", ptr);

printf("%d", *ptr);

指標切記存取內容前必初始化

int *ptr;

*ptr = 10; //馬上完蛋

有的時候如果只在意記憶體 addr 不 care 位址內容

可以試著宣告 ....

void *ptr

若是非得要存取, 必須強制轉型

void *ptr = &var;

(int*) ptr;

(float*) ptr;

透過指標可以修改常數const

Last updated