Menu
Coddy logo textTech

ポインタ変数の宣言

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

Goでは、主に2つの方法でポインタを宣言できます。varをポインタ型で使用する方法と、アドレス演算子を:=で使用する方法です。

ポインタ型を使用して、varでポインタを宣言します:

func main() {
    var x int = 42
    var ptr *int    // 整数へのポインタを宣言します
    ptr = &x        // xのアドレスをptrに代入します
    
    fmt.Println("Value of x:", x)
    fmt.Println("Value of ptr:", ptr)
    fmt.Println("Value at ptr:", *ptr)
}

出力は、ポインタが x のアドレスを格納していることを示しています。

Value of x: 42
Value of ptr: 0xc000018030
Value at ptr: 42

また、:= を使用して、1行でポインタの宣言と初期化を行うこともできます:

y := 100
ptr := &y    // 1ステップでポインタの宣言と初期化を行う
challenge icon

チャレンジ

初心者

このチャレンジでは、Goにおけるポインタの宣言と使用を練習します。ポインタはすでに設定されており、あなたのタスクは同じ値を指す新しいポインタを作成することです。

コード内の TODO を完了して、既存のポインタと同じメモリ番地を指す 'secondPointer' という名前の新しいポインタ変数を宣言してください。

チートシート

Goでは、ポインタ型のvarを使用するか、:=でアドレス演算子を使用してポインタを宣言できます。

varを使用してポインタを宣言する:

var x int = 42
var ptr *int    // 整数へのポインタを宣言する
ptr = &x        // xのアドレスをptrに代入する

:=を使用して1行でポインタを宣言および初期化する:

y := 100
ptr := &y    // 1ステップでポインタを宣言および初期化する

ポインタの値にアクセスする:

  • ptr - メモリアドレス
  • *ptr - そのアドレスにある値

自分で試してみよう

package main

import "fmt"

func main() {
	// ここに変数とその変数へのポインタがあります
	originalValue := 42
	pointerToValue := &originalValue
	
	// TODO: 'pointerToValue' と同じメモリ番地を指す
	// 'secondPointer' という名前の新しいポインタ変数を宣言してください
	
	
	// 以下のコードは変更しないでください
	fmt.Printf("Original value: %v\n", originalValue)
	fmt.Printf("Value through first pointer: %v\n", *pointerToValue)
	fmt.Printf("Value through second pointer: %v\n", *secondPointer)
	
	// 元の値を変更して、すべてのポインタにその変更が反映されることを確認しましょう
	originalValue = 100
	fmt.Printf("\nAfter changing original value to 100:\n")
	fmt.Printf("Original value: %v\n", originalValue)
	fmt.Printf("Value through first pointer: %v\n", *pointerToValue)
	fmt.Printf("Value through second pointer: %v\n", *secondPointer)
}
quiz icon腕試し

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

基礎のすべてのレッスン