Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar penunjuk golang kepada tatasusunan

Bagaimana untuk menukar penunjuk golang kepada tatasusunan

PHPz
PHPzasal
2023-04-25 09:10:521023semak imbas

Di Golang, penunjuk dan tatasusunan adalah konsep yang sangat penting dan boleh dikatakan sebagai bahagian teras ciri bahasa. Penunjuk membolehkan kita memanipulasi alamat memori pembolehubah dengan mudah, manakala tatasusunan digunakan untuk menyimpan satu set nilai jenis data yang sama. Artikel ini akan memperkenalkan cara menukar penuding kepada tatasusunan dan menerangkan mata pengetahuan yang berkaitan.

Pertama, kita perlu memahami konsep asas penunjuk dan tatasusunan.

Dalam Golang, penunjuk ialah pembolehubah yang nilainya menyimpan alamat memori pembolehubah lain. Anda boleh mendapatkan alamat pembolehubah dengan menambahkan tanda & sebelum nama pembolehubah, dan anda boleh mendapatkan nilai pembolehubah yang ditunjuk oleh penuding dengan menambahkan tanda * sebelum nama pembolehubah penunjuk. Berikut ialah contoh mudah:

package main

import "fmt"

func main() {
    var a int = 10   // 定义一个整型变量
    var b *int       // 定义一个整型指针变量

    b = &a           // 将变量a的地址赋值给指针变量b

    fmt.Printf("a的值为 %d\n", a )
    fmt.Printf("*b的值为 %d\n", *b )
    fmt.Printf("b的地址为 %x\n", b )
}

Hasil berjalan:

a的值为 10
*b的值为 10
b的地址为 c000014058

Dalam contoh di atas, kami menentukan pembolehubah integer a dan pembolehubah penunjuk integer b. Kemudian simpan alamat pembolehubah a dalam b. Dapatkan nilai pembolehubah yang ditunjuk oleh penunjuk melalui *b.

Tatasusunan ialah jenis data dengan panjang tetap dan jenis kandungan yang sama. Setiap elemen dalam tatasusunan disimpan bersebelahan dalam ingatan. Berikut ialah contoh takrif tatasusunan ringkas:

var a [5]int

Dalam contoh di atas, tatasusunan integer a dengan panjang 5 ditakrifkan. Panjang tatasusunan ditetapkan dan oleh itu tidak boleh diubah pada masa jalan. Kita boleh menggunakan pengendali indeks [] untuk mengakses elemen tatasusunan, seperti a[0], a[1], dsb.

Seterusnya, kami akan membincangkan cara menukar penuding kepada tatasusunan.

Di Golang, penunjuk boleh dianggap sebagai sebahagian daripada tatasusunan. Jika kita mempunyai penunjuk ke tatasusunan, kita boleh menggunakan penuding untuk mengakses tatasusunan. Berikut ialah contoh mudah:

package main

import "fmt"

func main() {
    var arr [5]int = [5]int{1, 2, 3, 4, 5}   // 定义一个长度为5的整型数组
    var p *[5]int = &arr                   // 将数组的地址赋值给指针变量p
    fmt.Println((*p)[0])                    // 输出数组的第一个元素
}

Dalam contoh di atas, kita mula-mula mentakrifkan arr tatasusunan integer dengan panjang 5 dan memberikannya nilai {1, 2, 3, 4, 5 }. Kemudian pembolehubah penunjuk p yang menunjuk kepada tatasusunan integer ditakrifkan, dan alamat arr diberikan kepada p. Akhir sekali, akses elemen pertama tatasusunan melalui *p.

Selain kaedah yang digunakan dalam contoh di atas, kita juga boleh menggunakan nama tatasusunan sebagai penunjuk. Sebagai contoh, apabila kita mentakrifkan tatasusunan a, a boleh digunakan sebagai penunjuk kepada elemen tatasusunan. Berikut ialah contoh mudah:

package main

import "fmt"

func main() {
    var a [5]int = [5]int{1, 2, 3, 4, 5}   // 定义一个长度为5的整型数组

    fmt.Println(a[0])                     // 输出数组的第一个元素

    var p *int                             // 定义一个整型指针变量p
    p = &a[0]                              // 将数组的第一个元素的地址赋值给指针变量p

    fmt.Println(*p)                        // 输出指针所指向的变量的值
}

Dalam contoh di atas, kita mula-mula mentakrifkan tatasusunan integer a dengan panjang 5, dan kemudian mengeluarkan elemen pertama tatasusunan melalui a[0]. Kemudian pembolehubah penunjuk integer p ditakrifkan, dan alamat a[0] diberikan kepada p. Akhir sekali, nilai pembolehubah yang ditunjuk oleh penunjuk adalah output melalui *p.

Ringkasan

Artikel ini memperkenalkan konsep asas penunjuk dan tatasusunan serta menerangkan cara menukar penunjuk kepada tatasusunan. Penunjuk dan tatasusunan adalah konsep yang sangat penting dalam bahasa Golang, dan mata pengetahuan yang berkaitan mesti dikuasai.

Atas ialah kandungan terperinci Bagaimana untuk menukar penunjuk golang kepada tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Kenapa tak guna golangArtikel seterusnya:Kenapa tak guna golang