English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Lenguaje de programación GoEl puntero en la variable es una variable que se utiliza para almacenar la dirección de memoria de otra variable. También puede hacer lo mismo queVariableDel mismo modo, envíe el puntero a la función. Hay dos formas de realizar la siguiente operación:
Crear un puntero y pasarlo a la función
Enviar la dirección de memoria de la variable
En el siguiente programa, usamos la funciónptfLa función tiene un parámetro de tipo puntero de entero, lo que significa que la función solo acepta parámetros de tipo puntero. Al mismo tiempo, esta función cambia el valor de la variablexEn el principio,xContiene el valor100. Pero después de la llamada a la función, el valor cambia a748Como se muestra en la salida.
// El programa Go crea un puntero //Y pasarlo a la función package main import "fmt" //Aceptar puntero como parámetro func ptf(a *int) { //Desreferenciar *a = 748 func main() { //Variable normal var x = 100 fmt.Printf("El valor de x antes de la llamada a la función es: %d\n", x) //Obtener una variable puntero //y asignar la dirección var pa *int = &x //Llamar a la función de la siguiente manera //Enviar puntero a la función ptf(pa) fmt.Printf("El valor de x después de la llamada a la función es: %d\n", x)
Salida:
El valor de x antes de la llamada a la función es: 100 El valor de x después de la llamada a la función es: 748
Consideremos el siguiente programa, no hemos creado punteros para almacenar variablesxla dirección, es decir, la dirección en el programa anteriorpa. Directamente pasamosxEnviar la dirección de la dirección a la llamada a la función, la llamada a la función es similar al método anterior.
package main import "fmt" // Puntero de tipo int como parámetro func ptf(a *int) { *a = 748 func main() { var x = 100 fmt.Printf("El valor de x antes de la llamada a la función es: %d\n", x) //Al llamar a la función //Enviar la dirección //Variable x ptf(&x) fmt.Printf("El valor de x después de la llamada a la función es: %d\n", x)
Salida:
El valor de x antes de la llamada a la función es: 100 El valor de x después de la llamada a la función es: 748
Atención:También puede usar el operador de declaración breve (:=) para declarar variables y punteros en el programa anterior.