L'opérateur d'adresse
Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 62 sur 109.
L'opérateur d'adresse (&) récupère l'adresse mémoire d'une variable. C'est ainsi que nous créons des pointeurs en Go.
Créez une variable et obtenez son adresse mémoire :
func main() {
number := 42
addressOfNumber := &number
fmt.Println("Value:", number)
fmt.Println("Address:", addressOfNumber)
}La sortie affiche la valeur et son adresse mémoire :
Value: 42
Address: 0xc000018030L'adresse (comme 0xc000018030) est un nombre hexadécimal représentant l'emplacement mémoire où la valeur est stockée. Cette adresse sera différente à chaque fois que vous exécutez le programme.
Défi
Débutant&) en Go. L'opérateur d'adresse renvoie l'adresse mémoire d'une variable, qui est l'endroit où la valeur de la variable est stockée dans la mémoire de l'ordinateur.Votre tâche consiste à utiliser l'opérateur d'adresse pour obtenir l'adresse mémoire de la variable fournie et la stocker dans la variable pointeur déjà déclarée.
Aide-mémoire
L'opérateur d'adresse (&) récupère l'adresse mémoire d'une variable et est utilisé pour créer des pointeurs en Go.
number := 42
addressOfNumber := &number
fmt.Println("Value:", number)
fmt.Println("Address:", addressOfNumber)L'adresse est affichée sous la forme d'un nombre hexadécimal (comme 0xc000018030) représentant l'emplacement mémoire où la valeur est stockée. Cette adresse sera différente à chaque exécution du programme.
Essayez vous-même
package main
import "fmt"
func main() {
// Ceci est notre variable d'exemple
name := "Gopher"
// Ceci déclare une variable pointeur pour stocker l'adresse d'une chaîne
var namePointer *string
// TODO : Utilisez l'opérateur d'adresse (&) pour obtenir l'adresse mémoire de 'name'
// et stockez-la dans la variable 'namePointer'
// Affiche la valeur vers laquelle le pointeur pointe
fmt.Printf("The value at that memory address is: %v\n", *namePointer)
}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
4Opérateurs de comparaison et logiques
Opérateurs de comparaison - Partie 1Opérateurs de comparaison - Partie 2Opérateur logique ANDOpérateur logique OROpérateur logique NOTBases de la priorité des opérateursRécapitulatif - Effectuer des comparaisons7Structures de contrôle : Les boucles
Explication de la boucle `for`Boucle For - Les basesBoucle For - Condition uniquementLe mot-clé `break`Le mot-clé `continue`Boucles imbriquéesRécapitulatif - Répéter des actions2Variables et types de données de base
Qu'est-ce qu'une variableInférence de type avec `:=` Entiers (int)Nombres à virgule flottanteBooléensChaînes de caractères (Strings)Valeurs zéroConstantesConventions de nommageRécapitulatif - Variables et types5Entrées/Sorties de base
Sortie formatéeVerbes de formatageAffichage des typesSaisie utilisateur de baseRécapitulatif - Entrées et Sorties8Fonctions
Comprendre les fonctionsDéclarer une fonctionAppeler des fonctionsParamètres de fonctionRetourner une valeur uniqueRetourner plusieurs valeursValeurs de retour nomméesBases de la portée des fonctionsRécapitulatif - Créer du code réutilisable11Types composites : Slices
Introduction aux SlicesDéclaration de littéraux de SlicesCréation de Slices avec `make`Longueur vs Capacité des SlicesAccès aux éléments d'un SliceAjout d'élémentsDécoupage de Slices/Tableaux existantsItération sur les SlicesCopie de SlicesRécapitulatif - Listes dynamiques3Opérateurs de base
Opérateurs arithmétiquesOpérateur de divisionL'opérateur moduloOpérateur d'affectationOpérateurs d'affectation augmentéeIncrémentation et décrémentationRécapitulatif - Calculs6Structure de contrôle : Les conditionnelles
L'instruction `if`Le mot-clé `else`Le mot-clé `else if`Masquage de variable dans `if`Initialisation des variablesL'instruction `switch``switch` avec expressions`switch` sans expressionLe mot-clé `fallthrough`Récapitulatif - Prendre des décisions9Pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de variables pointeursL'opérateur d'adresseDéréférencement de pointeursUtiliser des pointeurs dans les fonctionsPointeurs NilRécapitulatif - Comprendre les pointeurs12Types composites : Maps
Introduction aux MapsDéclaration de littéraux de MapCréation de Maps avec `make`Ajout et mise à jour de paires clé-valeurAccès aux valeurs d'une MapVérification de l'existence d'une cléSuppression d'entrées de MapTaille d'une MapItération sur les MapsRécapitulatif - Stockage clé-valeur