Menu
Coddy logo textTech

Deklarowanie zmiennych wskaźnikowych

Część sekcji Podstawy ścieżki GO w Coddy. Lekcja 61 z 109.

W Go możesz deklarować wskaźniki na dwa główne sposoby: używając var z typem wskaźnikowym lub używając operatora adresu z :=.

Zadeklaruj wskaźnik za pomocą var i typu wskaźnikowego:

func main() {
    var x int = 42
    var ptr *int    // Zadeklaruj wskaźnik do liczby całkowitej
    ptr = &x        // Przypisz adres x do ptr
    
    fmt.Println("Value of x:", x)
    fmt.Println("Value of ptr:", ptr)
    fmt.Println("Value at ptr:", *ptr)
}

Wynik pokazuje, że wskaźnik przechowuje adres zmiennej x:

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

Możesz również zadeklarować i zainicjalizować wskaźnik w jednym wierszu, używając :=:

y := 100
ptr := &y    // Zadeklaruj i zainicjalizuj wskaźnik w jednym kroku
challenge icon

Wyzwanie

Początkujący

W tym wyzwaniu poćwiczysz deklarowanie i używanie wskaźników w Go. Wskaźnik jest już przygotowany, a Twoim zadaniem jest utworzenie nowego wskaźnika wskazującego tę samą wartość.

Uzupełnij TODO w kodzie, aby zadeklarować nową zmienną wskaźnikową o nazwie 'secondPointer', która wskazuje ten sam adres pamięci co istniejący wskaźnik.

Spróbuj swoich sił

package main

import "fmt"

func main() {
	// Oto zmienna i wskaźnik do niej
	originalValue := 42
	pointerToValue := &originalValue
	
	// TODO: Zadeklaruj nową zmienną wskaźnikową o nazwie 'secondPointer' 
	// która wskazuje na ten sam adres pamięci co 'pointerToValue'
	
	
	// Nie modyfikuj poniższego kodu
	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)
	
	// Zmieńmy pierwotną wartość i zobaczmy, jak wszystkie wskaźniki odzwierciedlają tę zmianę
	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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Go online