Menu
Coddy logo textTech

ポインタのデリファレンス

CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 63/109。

ポインタの間接参照 (*) を使用すると、メモリアドレスに格納されている値にアクセスできます。これはポインタの「間接参照」と呼ばれます。

変数とそのポインタを作成します:

func main() {
    number := 42
    pointer := &number
    
    // ポインタをデリファレンスして値を取得します
    value := *pointer
    
    fmt.Println("Pointer:", pointer)
    fmt.Println("Dereferenced value:", value)
}

出力には、ポインタとそれが指し示す値の両方が表示されます:

Pointer: 0xc000018030
Dereferenced value: 42

ポインタ変数の前にあるアスタリスク (*) は、そのメモリアドレスにある実際の値にアクセスします。

challenge icon

チャレンジ

初心者

このチャレンジでは、Goにおけるポインタの間接参照(デリファレンス)を練習します。文字列型の値を持つ変数 message と、それを指すポインタ messagePtr があります。

あなたのタスクは、ポインタを間接参照して、それが指している値にアクセスし、表示することです。

チートシート

アスタリスク(*)演算子を使用してポインタをデリファレンスし、メモリ・アドレスにある値にアクセスします:

number := 42
pointer := &number

// ポインタをデリファレンスして値を取得します
value := *pointer

fmt.Println("Pointer:", pointer)           // 0xc000018030
fmt.Println("Dereferenced value:", value)  // 42

ポインタ変数の前にある * 演算子は、そのメモリ・アドレスに格納されている実際の値にアクセスします。

自分で試してみよう

package main

import "fmt"

func main() {
	// ここに文字列変数があります
	message := "Hello, pointers!"
	
	// これはmessage変数へのポインタです
	messagePtr := &message
	
	// TODO: messagePtrをデリファレンスして、それが指している値を取得し、
	// 変数 'value' に格納してください
	value := ""
	
	// 結果を出力します
	fmt.Println("The pointer points to the value:", value)
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン