Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Mengakses dan Menyimpan Alamat Memori bagi Go Struct?
Mengakses dan Menyimpan Alamat Memori Struktur Go
Memahami tingkah laku alamat memori dan penunjuk adalah penting dalam pengaturcaraan, terutamanya dengan struktur data yang kompleks seperti struct Go. Artikel ini menyelidiki nuansa pencetakan dan memanipulasi alamat struct.
Pertimbangkan program Go berikut:
type Rect struct { width int name int } func main() { r := Rect{4,6} p := &r p.width = 15 fmt.Println("-----",&p,r,p,&r) }
Apabila menjalankan program ini, anda mungkin melihat output dengan format _____0x40c130 {15 6} &{15 6} &{15 6}. Walaupun output ini memberikan beberapa cerapan tentang lokasi memori, ia tidak memaparkan alamat pembolehubah r secara eksplisit.
Untuk mencetak alamat r secara langsung, kita perlu memintas pemformatan lalai yang digunakan oleh fmt.Println( ). Sebaliknya, kita boleh menentukan rentetan format untuk mengawal output. Kata kerja %p digunakan untuk mencetak penunjuk dan alamat. Mengubah suai baris fmt.Println() seperti berikut akan mencetak alamat r:
fmt.Printf("%p\n", &r)
Ini akan mengeluarkan alamat r dalam format heksadesimal, seperti 0x414020.
Selain itu, jika anda ingin menyimpan alamat r dalam pembolehubah, anda boleh menggunakan yang berikut sintaks:
addr := &r
Ini akan memberikan alamat memori r kepada pemboleh ubah addr. Anda kemudiannya boleh menggunakan addr untuk mengakses atau mengubah suai nilai yang terkandung dalam struktur Rect secara tidak langsung.
Ingat, apabila menggunakan penunjuk dan alamat, adalah penting untuk mempertimbangkan konteks dan tujuan untuk memahami penggunaannya sepenuhnya.
Atas ialah kandungan terperinci Bagaimanakah Saya Mengakses dan Menyimpan Alamat Memori bagi Go Struct?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!