pointer-in-go-lang

อธิบาย Pointer

NameValueAddressAdditional Mappings
a1100a -> 1
*b100304*b -> 1, b -> 100, &b -> 304
**c304208*c -> 100, c -> 304, &c -> 208, **c -> 1

ตัวแปรแต่ละตัว:

  1. a

    • กล่องชื่อ a ใส่เลข 1 อยู่ข้างใน
    • และ a ถูกเก็บไว้ในที่อยู่ (address) หมายเลข 100
  2. *b

    • กล่อง b เป็นกล่องที่ไม่ได้ใส่ค่าโดยตรง แต่เก็บ “ที่อยู่ของกล่อง a” ซึ่งก็คือ 100
    • และตัวกล่อง b นี้เองอยู่ที่ address หมายเลข 304
  3. **c

    • กล่อง c เป็นกล่องที่เก็บ “ที่อยู่ของกล่อง b” ซึ่งก็คือ 304
    • และกล่อง c เองอยู่ที่ address หมายเลข 208

ความสัมพันธ์ระหว่างตัวแปร:


เปรียบเทียบง่ายๆ:

ดังนั้น **c ก็สามารถย้อนกลับไปหาค่าใน a ได้ครับ! 😊