Desreferenciando Ponteiros
Parte da seção Fundamentos do Journey de GO da Coddy — lição 63 de 109.
Desreferenciar ponteiros (*) permite que você acesse o valor armazenado em um endereço de memória. Isso é chamado de "desreferenciar" o ponteiro.
Crie uma variável e um ponteiro para ela:
func main() {
number := 42
pointer := &number
// Desreferencie o ponteiro para obter o valor
value := *pointer
fmt.Println("Pointer:", pointer)
fmt.Println("Dereferenced value:", value)
}A saída mostra tanto o ponteiro quanto o valor para o qual ele aponta:
Pointer: 0xc000018030
Dereferenced value: 42O asterisco (*) antes de uma variável de ponteiro acessa o valor real naquele endereço de memória.
Desafio
InicianteNeste desafio, você praticará a desreferenciação de ponteiros em Go. Temos uma variável message com um valor de string e um ponteiro messagePtr que aponta para ela.
Sua tarefa é desreferenciar o ponteiro para acessar e imprimir o valor para o qual ele aponta.
Folha de consulta
Use o operador asterisco (*) para desreferenciar um ponteiro e acessar o valor no endereço de memória:
number := 42
pointer := &number
// Desreferencie o ponteiro para obter o valor
value := *pointer
fmt.Println("Pointer:", pointer) // 0xc000018030
fmt.Println("Dereferenced value:", value) // 42O operador * antes de uma variável de ponteiro acessa o valor real armazenado naquele endereço de memória.
Experimente você mesmo
package main
import "fmt"
func main() {
// Aqui está a nossa variável string
message := "Hello, pointers!"
// Este é um ponteiro para a nossa variável message
messagePtr := &message
// TODO: Desreferenciar o messagePtr para obter o valor para o qual ele aponta
// e armazená-lo na variável 'value'
value := ""
// Imprimir os resultados
fmt.Println("The pointer points to the value:", value)
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores de Comparação e Lógicos
Operadores de Comparação - Parte 1Operadores de Comparação - Parte 2Operador Lógico ANDOperador Lógico OROperador Lógico NOTFundamentos de Precedência de OperadoresRecapitulação - Fazendo Comparações7Fluxo de Controle: Loops
O Loop `for` ExplicadoLoop For - BásicoLoop For - Apenas CondiçãoA Palavra-chave `break`A Palavra-chave `continue`Loops AninhadosRecapitulação - Repetindo Ações2Variáveis e Tipos de Dados Básicos
O que é uma variávelInferência de Tipo com `:=`Inteiros (int)Números de Ponto FlutuanteBooleanosStringsValores ZeroConstantesConvenções de NomenclaturaRecapitulação - Variáveis e Tipos5Entrada/Saída Básica
Saída FormatadaVerbos de FormataçãoImprimindo TiposObtendo Entrada Básica do UsuárioRecapitulação - Entrada e Saída8Funções
Entendendo FunçõesDeclarando uma FunçãoChamando FunçõesParâmetros de FunçãoRetornando um Único ValorRetornando Múltiplos ValoresValores de Retorno NomeadosFundamentos de Escopo de FunçãoRecapitulação - Criando Código Reutilizável3Operadores Básicos
Operadores AritméticosOperador de DivisãoO Operador MóduloOperador de AtribuiçãoOperadores de Atribuição CompostaIncremento e DecrementoRecapitulação - Cálculos6Fluxo de Controle: Condicionais
A Instrução `if`A Palavra-chave `else`A Palavra-chave `else if`Sombreamento de Variáveis no `if`Inicializando VariáveisA Instrução `switch`Switch com ExpressõesSwitch sem ExpressãoA Palavra-chave `fallthrough`Recapitulação - Tomando Decisões