Heim >Backend-Entwicklung >Golang >Wie greife ich auf die Speicheradresse einer Go-Struktur zu und speichere sie?
Zugriff auf und Speichern von Speicheradressen von Go-Strukturen
Das Verständnis des Verhaltens von Speicheradressen und Zeigern ist bei der Programmierung von entscheidender Bedeutung, insbesondere bei komplexen Datenstrukturen wie Go-Strukturen. Dieser Artikel befasst sich mit den Nuancen des Druckens und Bearbeitens von Strukturadressen.
Betrachten Sie das folgende Go-Programm:
type Rect struct { width int name int } func main() { r := Rect{4,6} p := &r p.width = 15 fmt.Println("-----",&p,r,p,&r) }
Beim Ausführen dieses Programms beobachten Sie möglicherweise eine Ausgabe im Format _____0x40c130 {15 6} &{15 6} &{15 6}. Während diese Ausgabe einige Einblicke in die Speicherorte bietet, zeigt sie nicht explizit die Adresse der r-Variablen an.
Um die Adresse von r direkt auszugeben, müssen wir die von fmt.Println( ). Stattdessen können wir eine Formatzeichenfolge angeben, um die Ausgabe zu steuern. Das Verb %p wird zum Drucken von Zeigern und Adressen verwendet. Wenn Sie die Zeile fmt.Println() wie folgt ändern, wird die Adresse von r gedruckt:
fmt.Printf("%p\n", &r)
Dadurch wird die Adresse von r im Hexadezimalformat ausgegeben, z. B. 0x414020.
Zusätzlich Wenn Sie die Adresse von r in einer Variablen speichern möchten, können Sie Folgendes verwenden Syntax:
addr := &r
Dadurch wird die Speicheradresse von r der Variablen addr zugewiesen. Sie können dann addr verwenden, um indirekt auf die in der Rect-Struktur enthaltenen Werte zuzugreifen oder diese zu ändern.
Denken Sie daran, dass es bei der Arbeit mit Zeigern und Adressen wichtig ist, den Kontext und Zweck zu berücksichtigen, um deren Verwendung vollständig zu verstehen.
Das obige ist der detaillierte Inhalt vonWie greife ich auf die Speicheradresse einer Go-Struktur zu und speichere sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!