Déréférencement avec ptr.*
Lisez et écrivez au moyen d'un pointeur.
Déréférencement avec ptr.* est une leçon Zig Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Zig Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Zig Academy comprend 4 leçons au total.
Atteindre la valeur
Un pointeur contient une adresse, pas une valeur. Pour utiliser la valeur située derrière lui, vous devez d’abord déréférencer le pointeur.
La syntaxe .*
Zig déréférence avec un .* placé à la fin du pointeur. Ainsi, ptr.* désigne la valeur vers laquelle ptr pointe actuellement.
var x: i32 = 7;
const p = &x;
const v = p.*;Lire via un pointeur
Écrire ptr.* dans une expression lit la valeur pointée et vous donne une copie normale que vous pouvez utiliser n’importe où.
const doubled = p.* * 2;Écrire via un pointeur
Placez ptr.* à gauche d’une affectation pour écrire une nouvelle valeur à l’emplacement d’origine.
p.* = 99;Les modifications sont visibles
Comme le pointeur partage le stockage d’origine, écrire par son intermédiaire met également à jour la variable que voient les autres.
var x: i32 = 1;
const p = &x;
p.* = 5;
// x is now 5Pas d’opérateur fléché
Zig n’a pas d’opérateur -> comme C. Que vous lisiez ou écriviez un champ, vous passez toujours par le même déréférencement .*.
Déréférencer puis accéder au champ
Pour un pointeur vers une structure, p.field fonctionne directement : Zig déréférence automatiquement lors de l’accès au champ, vous pouvez donc omettre .* à cet endroit.
const p = &point;
const y = p.y;L’écriture explicite reste possible
Vous pouvez tout de même l’écrire p.*.field, mais la forme plus courte p.field est idiomatique en Zig et se lit plus clairement.
Const interdit les écritures
Si le pointeur est un *const T, alors ptr.* est accessible en lecture seule ; tenter d’écrire par son intermédiaire provoque une erreur de compilation.
const x: i32 = 3;
const p = &x;
// p.* = 4; // errorDéréférencer dans un calcul
Vous pouvez utiliser ptr.* partout où une valeur est acceptée, y compris dans une opération arithmétique : p.* + 1 signifie simplement la valeur pointée plus un.
const next = p.* + 1;Une erreur courante
Oublier .* revient à utiliser l’adresse comme un nombre, ce qui constitue une erreur de type. Zig la détecte lors de la compilation, et non à l’exécution.
Vérification rapide
Vous avez const p = &x et voulez stocker un nouveau nombre dans x via p. Qu’écrivez-vous ?
Récapitulatif
Utilisez ptr.* pour lire ou écrire la valeur ciblée par un pointeur, les champs de structure sont déréférencés automatiquement et les pointeurs *const T restent accessibles en lecture seule. 🎯
Questions Fréquemment Posées
La leçon « Déréférencement avec ptr.* » est-elle gratuite ?
Oui — le texte complet de « Déréférencement avec ptr.* » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Zig Academy, passe à CoddyKit PRO. Le cours Zig Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Déréférencement avec ptr.* » ?
Lisez et écrivez au moyen d'un pointeur. Tu pratiques Zig Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Zig Academy ?
Aucune expérience préalable n'est requise. Zig Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Déréférencement avec ptr.* » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Zig Academy ?
Oui. Chaque leçon Zig Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Pointeurs vers un seul élément avec *T
- Déréférencement avec ptr.*
- Pointeurs vers plusieurs éléments [*]T
- Pointeurs constants et alignement