Desreferenciando com ptr.*
Leia e escreva por meio de um ponteiro.
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 5Nã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; // errorDesreferenciaçã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. 🎯
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
- Ponteiros para um único item com *T
- Desreferenciando com ptr.*
- Ponteiros para vários itens [*]T
- Ponteiros constantes e alinhamento