El operador de dirección (Address-Of)
Parte de la sección Fundamentos del Journey de GO de Coddy — lección 62 de 109.
El operador de dirección (&) obtiene la dirección de memoria de una variable. Es así como creamos punteros en Go.
Crea una variable y obtén su dirección de memoria:
func main() {
number := 42
addressOfNumber := &number
fmt.Println("Value:", number)
fmt.Println("Address:", addressOfNumber)
}La salida muestra el valor y su dirección de memoria:
Value: 42
Address: 0xc000018030La dirección (como 0xc000018030) es un número hexadecimal que representa la ubicación de memoria donde se almacena el valor. Esta dirección será diferente cada vez que ejecutes el programa.
Desafío
Principiante&) en Go. El operador de dirección devuelve la dirección de memoria de una variable, que es donde se almacena el valor de la variable en la memoria de la computadora.Tu tarea es usar el operador de dirección para obtener la dirección de memoria de la variable proporcionada y almacenarla en la variable de puntero que ya está declarada.
Hoja de referencia
El operador de dirección (&) obtiene la dirección de memoria de una variable y se utiliza para crear punteros en Go.
number := 42
addressOfNumber := &number
fmt.Println("Value:", number)
fmt.Println("Address:", addressOfNumber)La dirección se muestra como un número hexadecimal (como 0xc000018030) que representa la ubicación de memoria donde se almacena el valor. Esta dirección será diferente cada vez que ejecutes el programa.
Pruébalo tú mismo
package main
import "fmt"
func main() {
// Esta es nuestra variable de ejemplo
name := "Gopher"
// Esto declara una variable de puntero para almacenar la dirección de una cadena
var namePointer *string
// TODO: Usa el operador de dirección (&) para obtener la dirección de memoria de 'name'
// y almacénala en la variable 'namePointer'
// Imprime el valor al que apunta el puntero
fmt.Printf("The value at that memory address is: %v\n", *namePointer)
}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 decisiones9Punteros
¿Qué es un puntero?Declaración de variables de punteroEl operador de dirección (Address-Of)Desreferenciación de punterosUso de punteros en funcionesPunteros NilResumen: Entendiendo los punteros