Menu
Coddy logo textTech

Déclaration de variables pointeurs

Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 61 sur 109.

En Go, vous pouvez déclarer des pointeurs de deux manières principales : en utilisant var avec un type de pointeur ou en utilisant l'opérateur d'adresse avec :=.

Déclarez un pointeur en utilisant var avec un type de pointeur :

func main() {
    var x int = 42
    var ptr *int    // Déclare un pointeur vers un entier
    ptr = &x        // Assigne l'adresse de x à ptr
    
    fmt.Println("Value of x:", x)
    fmt.Println("Value of ptr:", ptr)
    fmt.Println("Value at ptr:", *ptr)
}

La sortie montre que le pointeur stocke l'adresse de x :

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

Vous pouvez également déclarer et initialiser un pointeur sur une seule ligne en utilisant := :

y := 100
ptr := &y    // Déclarer et initialiser le pointeur en une seule étape
challenge icon

Défi

Débutant

Dans ce défi, vous allez vous entraîner à déclarer et à utiliser des pointeurs en Go. Un pointeur est déjà configuré pour vous, et votre tâche consiste à créer un nouveau pointeur qui pointe vers la même valeur.

Complétez le TODO dans le code pour déclarer une nouvelle variable de pointeur appelée 'secondPointer' qui pointe vers la même adresse mémoire que le pointeur existant.

Aide-mémoire

En Go, vous pouvez déclarer des pointeurs en utilisant var avec un type de pointeur ou en utilisant l'opérateur d'adresse avec :=.

Déclarer un pointeur en utilisant var :

var x int = 42
var ptr *int    // Déclarer un pointeur vers un entier
ptr = &x        // Assigner l'adresse de x à ptr

Déclarer et initialiser un pointeur sur une seule ligne en utilisant := :

y := 100
ptr := &y    // Déclarer et initialiser le pointeur en une seule étape

Accéder aux valeurs du pointeur :

  • ptr - l'adresse mémoire
  • *ptr - la valeur à cette adresse

Essayez vous-même

package main

import "fmt"

func main() {
	// Voici une variable et un pointeur vers celle-ci
	originalValue := 42
	pointerToValue := &originalValue
	
	// TODO : Déclarez une nouvelle variable de pointeur nommée 'secondPointer' 
	// qui pointe vers la même adresse mémoire que 'pointerToValue'
	
	
	// Ne modifiez pas le code ci-dessous
	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)
	
	// Modifions la valeur d'origine et voyons tous les pointeurs refléter le changement
	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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux