¿Cómo declarar y acceder a la variable de puntero en Golang?

Los punteros en el lenguaje de programación Go o Golang es una variable que se utiliza para almacenar la dirección de memoria de otra variable. Los punteros en Golang también se denominan variables especiales. Las variables se utilizan para almacenar algunos datos en una dirección de memoria particular en el sistema. La dirección de memoria siempre se encuentra en formato hexadecimal (comenzando con 0x como 0xFFAAF, etc.).

Antes de comenzar, hay dos operadores importantes que usaremos en punteros, es decir

* Operador también denominado operador de desreferenciación utilizado para declarar la variable de puntero y acceder al valor almacenado en la dirección.

& operador denominado como operador de dirección utilizado para devolver la dirección de una variable o para acceder a la dirección de una variable a un puntero.

Declarando un puntero :

var pointer_name *Data_Type

Ejemplo: a continuación se muestra un puntero de tipo string que puede almacenar solo las direcciones de memoria de las variables de string .

var s *string

Inicialización del puntero: para hacer esto, debe inicializar un puntero con la dirección de memoria de otra variable utilizando el operador de dirección como se muestra en el siguiente ejemplo:

// normal variable declaration
var a = 45

// Initialization of pointer s with 
// memory address of variable a
var s *int = &a

Ejemplo: En el siguiente ejemplo, usando puntero accederemos al valor de la variable cuya dirección está almacenada en puntero.

// Golang program to show how to declare
// and access pointer variable in Golang
package main
  
import (
    "fmt"
)
  
func main() {
  
    // variable declaration
    var dummyVar string = "Geeks For Geeks"
  
    // pointer declaration
    var pointerVariable *string
  
    // assigning variable address to pointer variable
    pointerVariable = &dummyVar
  
    // Prints the address of the dummyVar variable
    fmt.Printf("\nAddress of the variable: %v", &dummyVar)
  
    // Prints the address stored in pointer
    fmt.Printf("\nAddress stored in the pointer variable: %v", pointerVariable)
  
    // Value of variable
    fmt.Printf("\nValue of the Actual Variable: %s", dummyVar)
  
    // Value of variable whose address is stored in pointer
    fmt.Printf("\nValue of the Pointer variable: %s", *pointerVariable)
}

Producción:

Address of the variable: 0xc00010a040
Address stored in the pointer variable: 0xc00010a040
Value of the Actual Variable: Geeks For Geeks
Value of the Pointer variable: Geeks For Geeks

Explicación: Aquí se usa el símbolo (&) para obtener la dirección de la variable que almacena el valor como «Geeks for Geeks». La dirección propiedad de esta variable es la misma que está almacenada en el puntero. Por lo tanto, la salida de &dummyVar y pointerVariable es la misma. Para acceder al valor almacenado en la dirección, que se almacena en el puntero, usamos el símbolo de usuario (*).

Publicación traducida automáticamente

Artículo escrito por pganesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *