Zig Academy · Aula

Desreferenciando com ptr.*

Leia e escreva por meio de um ponteiro.

Aula 2 de 413 etapas

Desreferenciando com ptr.* é uma aula grátis de Zig Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Zig Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Zig Academy inclui 4 aulas no total.

Alcançando o valor

Um ponteiro armazena um endereço, não um valor. Para usar o valor por trás dele, primeiro você precisa desreferenciar o ponteiro.

A sintaxe .*

Zig desreferencia com um .* no final do ponteiro. Assim, ptr.* significa o valor para o qual ptr aponta atualmente.

var x: i32 = 7;
const p = &x;
const v = p.*;

Lendo por meio de um ponteiro

Escrever ptr.* em uma expressão lê o valor apontado, fornecendo uma cópia comum que você pode usar em qualquer lugar.

const doubled = p.* * 2;

Escrevendo por meio de um ponteiro

Coloque ptr.* no lado esquerdo de uma atribuição para escrever um novo valor no local original.

p.* = 99;

As alterações ficam visíveis

Como o ponteiro compartilha o armazenamento original, escrever por meio dele atualiza também a variável que todos os demais observam.

var x: i32 = 1;
const p = &x;
p.* = 5;
// x is now 5

Não há operador de seta

Zig não tem -> como C. Tanto para ler quanto para escrever um campo, você sempre usa a mesma desreferenciação .*.

Desreferencie e depois acesse o campo

Para um ponteiro para uma estrutura, p.field funciona diretamente: Zig faz a desreferenciação automática ao acessar o campo, então você pode omitir o .* nesse caso.

const p = &point;
const y = p.y;

A forma explícita é permitida

Você ainda pode escrevê-lo como p.*.field, mas a forma mais curta, p.field, é idiomática em Zig e fica mais clara.

Const impede escritas

Se o ponteiro for um *const T, então ptr.* será somente leitura; tentar atribuir por meio dele causará um erro de compilação.

const x: i32 = 3;
const p = &x;
// p.* = 4; // error

Desreferenciação em operações matemáticas

Você pode usar ptr.* em qualquer lugar onde um valor seja aceito, inclusive em operações aritméticas; portanto, p.* + 1 significa simplesmente o valor apontado mais um.

const next = p.* + 1;

Um erro comum

Esquecer .* tenta usar o endereço como número, o que é um erro de tipo. Zig o detecta durante a compilação, não durante a execução.

Verificação rápida

Você tem const p = &x e quer armazenar um novo número em x por meio de p. O que deve escrever?

Recapitulação

Use ptr.* para ler ou escrever o valor apontado por um ponteiro; os campos de estruturas são desreferenciados automaticamente, e ponteiros *const T permanecem somente para leitura. 🎯

Grátis para começar

Aprenda Zig com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “Desreferenciando com ptr.*” é grátis?

Sim — o texto completo de “Desreferenciando com ptr.*” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Zig Academy, atualize para CoddyKit PRO. O curso de Zig Academy inclui 4 aulas no total.

O que vou aprender em “Desreferenciando com ptr.*”?

Leia e escreva por meio de um ponteiro. Você pratica Zig Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Zig Academy?

Nenhuma experiência prévia é necessária. Zig Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Desreferenciando com ptr.*”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Zig Academy?

Sim. Cada aula de Zig Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Ponteiros para um único item com *T
  2. Desreferenciando com ptr.*
  3. Ponteiros para vários itens [*]T
  4. Ponteiros constantes e alinhamento
← Voltar para Zig Academy