▌重溫指標。


以下介紹 記憶體地址 、 儲存空間 、 變數類型 和 變數名稱 這四個概念。
用最簡單的指標應用來解釋:
int b;
int *a = &b;

在 a, b 被宣告出來的時候 , 並且未初始化 :
https://ithelp.ithome.com.tw/upload/images/20181017/2011178868WKnrca4f.png
a 被宣告為 int* , b 被宣告為 int 。
由於 a, b 均未初始化 , 儲存空間中儲存 垃圾值(garbage value) ,
一些不能預測未知、並且不能使用無用的值 。

——
使 a 指向 b, (個人認為使用指向這字眼太抽象)
即是 把 b 的地址(記憶體地址) 放入 a 的儲存空間
https://ithelp.ithome.com.tw/upload/images/20181017/20111788YyvNz9BLuu.png
上面不用指向的方式,用一層虛擬取值層級表示,
(可能)會比較容易理解。

▌行為:

b 的地址取替了 a 儲存空間 原本的垃圾值,( a = &b )
a 的類型是int*(指標類型), 所以 a 的儲存空間是用於儲存記憶體地址
由於 a 儲存了 b 的地址, 所以 *a 等價 b 的儲存空間,即 b 。
即 所謂的 a 指標 指向了 b。
* (星號) 是 取值運算符 / 間接尋址運算符 / 間接取值運算子 。 ( * 的不同名稱

下一篇介紹比較複雜一點點的例子 。