Desreferenciación de punteros
Parte de la sección Fundamentos del Journey de GO de Coddy — lección 63 de 109.
Desreferenciar punteros (*) te permite acceder al valor almacenado en una dirección de memoria. Esto se llama "desreferenciar" el puntero.
Crea una variable y un puntero a ella:
func main() {
number := 42
pointer := &number
// Desreferencia el puntero para obtener el valor
value := *pointer
fmt.Println("Pointer:", pointer)
fmt.Println("Dereferenced value:", value)
}La salida muestra tanto el puntero como el valor al que apunta:
Pointer: 0xc000018030
Dereferenced value: 42El asterisco (*) antes de una variable de puntero accede al valor real en esa dirección de memoria.
Desafío
PrincipianteEn este desafío, practicarás la desreferenciación de punteros en Go. Tenemos una variable message con un valor de cadena, y un puntero messagePtr que apunta a ella.
Tu tarea es desreferenciar el puntero para acceder e imprimir el valor al que apunta.
Hoja de referencia
Usa el operador asterisco (*) para desreferenciar un puntero y acceder al valor en la dirección de memoria:
number := 42
pointer := &number
// Desreferencia el puntero para obtener el valor
value := *pointer
fmt.Println("Pointer:", pointer) // 0xc000018030
fmt.Println("Dereferenced value:", value) // 42El operador * antes de una variable de puntero accede al valor real almacenado en esa dirección de memoria.
Pruébalo tú mismo
package main
import "fmt"
func main() {
// Aquí está nuestra variable de cadena
message := "Hello, pointers!"
// Este es un puntero a nuestra variable message
messagePtr := &message
// TODO: Desreferenciar el messagePtr para obtener el valor al que apunta
// y almacenarlo en la variable 'value'
value := ""
// Imprimir los resultados
fmt.Println("The pointer points to the value:", value)
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores de comparación y lógicos
Operadores de comparación - Parte 1Operadores de comparación - Parte 2Operador lógico ANDOperador lógico OROperador lógico NOTConceptos básicos de precedencia de operadoresResumen: Realizar comparaciones7Flujo de control: Bucles
Explicación del bucle `for`Bucle `for` - BásicoBucle `for` - Solo condiciónLa palabra clave `break`La palabra clave `continue`Bucles anidadosResumen - Repetición de acciones2Variables y tipos de datos básicos
¿Qué es una variable?Inferencia de tipos con `:=`Enteros (int)Números de punto flotanteBooleanosStringsValores ceroConstantesConvenciones de nomenclaturaResumen - Variables y tipos5Entrada y salida básica
Salida con formatoVerbos de formatoImpresión de tiposObtener entrada básica del usuarioResumen: Entrada y salida8Funciones
Comprendiendo las funcionesDeclaración de una funciónLlamada a funcionesParámetros de funciónRetorno de un solo valorRetorno de múltiples valoresValores de retorno con nombreConceptos básicos del alcance de las funcionesResumen: Creando código reutilizable3Operadores básicos
Operadores aritméticosOperador de divisiónEl operador móduloOperador de asignaciónOperadores de asignación compuestaIncremento y decrementoResumen - Cálculos6Flujo de control: Condicionales
La sentencia `if`La palabra clave `else`La palabra clave `else if`Sombreado de variables en `if`Inicialización de variablesLa sentencia `switch``switch` con expresiones`switch` sin expresiónLa palabra clave `fallthrough`Resumen: Toma de decisiones