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