package main

import (  
    "fmt"
)

func main() {

    var ptr *int

    i := 12345

    ptr = &i

    fmt.Println("iのアドレス:", &i)           // 0x1043617c
    fmt.Println("ptrの値(変数iのアドレス):", ptr) // 0x1043617c

    fmt.Println("iの値:", i)           // 12345
    fmt.Println("ポインタ経由のiの値:", *ptr) // 12345

    *ptr = 999

    fmt.Println("ポインタ経由で変更したiの値:", i) // 999
    fmt.Println(*ptr)                 // 999
    fmt.Println(&ptr)                 // 0x1040a120
    fmt.Println(ptr)                  // 0x1043617c
}