Menu
Coddy logo textTech

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: 0xc000018030

La 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.

challenge icon

Desafío

Principiante
En este desafío, practicarás el uso del operador de dirección (&) 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)
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos