# Pointer 指標 :::info C 語言中特有的指標,可以透過記憶體映射的方式直接控制硬體,這也是為什麼 C 語言在硬體系統特別強大的原因,包括資料結構(陣列/字串/鏈結串列)、系統程式(編譯器/作業系統)、演算法,都會進一步使用到。 ::: ```c= int a = 5; int b = 29; int c = 2023; int d = 18; int e = 30; ``` | 記憶體位址 | 值 | 變數名稱 | |:----------:|:----:|:--------:| | 0x0012FF70 | 5 | a | | 0x0012FF74 | 29 | b | | 0x0012FF78 | 2023 | c | | 0x0012FF7C | 18 | d | | 0x0012FF80 | 30 | e | | 0x0012FF80 | ... | f | :::warning 這裡的記憶體位址每跳一次就是4byte是因為一個int使用的記憶體大小就是4byte ::: ## 指標變數(Pointer variable) 指標 (Pointer) 就是某變數的位址。而這邊的指標變數 (Pointer Variable),則是用來存放指標的變數 ```c= int* pointer; int *pointer; ``` ```c= int b; b = 2; int* pointer; pointer = &b; ```