LoginSignup
2
1

More than 3 years have passed since last update.

【Go】ポインタについて

Last updated at Posted at 2020-08-22

※注意: この記事ははあくまで個人学習用に整理しただけの記事で、内容としては不完全なものになります。読んでも参考にならない可能性が高いです。

今まで JavaScript のみをやっていたので、pointer という概念がなかなか入ってこないので一旦整理

Pointer

一旦以下の挙動を確認

package main

import "fmt"

func main() {
    i := 1 // i という変数を定義し、1を代入
    fmt.Println(i) // 1
    p1 := &i // p1 という変数を定義し、& 演算子を使用して i のポインタを格納
    fmt.Println(&i) // 0xc0000b6001
    fmt.Println(p1) // 0xc0000b6001
    fmt.Println(&p1) // 0xc0000b6003
    fmt.Println(*p1) // 1
    *p1 = 2 // p1 を * 演算子を使用したものに、 2 を格納
    fmt.Println(i) // 2
}

上記の流れとしては以下の画像の通りになる

スクリーンショット 2020-08-22 20.06.22.png

スクリーンショット 2020-08-22 20.09.02.png

スクリーンショット 2020-08-22 20.10.07.png

一旦アドレス演算子と間接参照演算子についての挙動は簡単に理解した。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1