1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Go】ポインタ

Last updated at Posted at 2020-03-15

ポインタ


値渡し、ポインタ渡し、参照渡しの違いについて 基本こちらの記事で理解 [参照リンク](https://qiita.com/lon9/items/e70e3b453cb485858062)

自分なりの整理


# このポインタ型の関数は
# アドレス値を受け取る
# 自身のアドレス値も別に持ってる("&"でアドレス確認可)
# 受け取ったアドレス値にあるデータにアクセス"*"

func pointer(i *int){
    fmt.Println("値(受け取ったアドレス)=メイン(アドレス)が入る: ", i)
    fmt.Println("自身のアドレス: ", &i)
    fmt.Println("値(受け取ったアドレス)のデータにアクセス: ", *i)
}


# メイン
func main() {
    i := 10
    fmt.Println("メイン(値): ", i)
    fmt.Println("メイン(アドレス): ", &i)
    
    # ポインタ型の関数にはアドレスを渡す
    pointer(&i)
}

結果

メイン(値):  10
メイン(アドレス):  0xc00009c008
値(受け取ったアドレス)=メイン(アドレス)が入る:  0xc00009c008
自身のアドレス:  0xc000098020
値(受け取ったアドレス)のデータにアクセス:  10
1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?