Apakah perbezaan antara (*pembolehubah) dan *&pembolehubah?

王林
Lepaskan: 2024-02-05 21:30:04
ke hadapan
1037 orang telah melayarinya

(*variable) 和 *&variable 有什么区别?

Kandungan soalan

Saya sedang belajar menggunakan exercism.com dan membaca dokumentasi dan artikel yang disyorkan dalam sukatan pelajaran.

Kini saya berada dalam struktur dan menemui kod seterusnya

package main

import "fmt"

type Employee struct {
  firstName, lastName string
  salary              int
  fullTime            bool
}

func main() {
  employee := &Employee{
    firstName: "Walddys",
    lastName:  "Dorrejo",
    salary:    1200,
    fullTime:  true,
  }
  fmt.Println("firstName", (*employee).firstName)
}
Salin selepas log masuk

Tetapi silap-silap saya masukkan fmt.println("firstname", *&employee.firstname) yang memberikan saya hasil yang sama seperti yang saya gunakan sebelum ini dalam blok kod.

Persoalan saya, adakah terdapat perbezaan atau sama dalam menggunakan penunjuk ini?


Jawapan betul


&x 生成一个指向 x 的指针,而 *p 取消引用指针 p。因此 *& 有效地相互抵消,例如 v := *&xv := x Kedua-dua kenyataan adalah sama.

Maksudnya *&employee.firstNameemployee.firstName sama.

di mana employee 是指向结构体的指针,而 firstName 是该结构体的字段,则表达式 employee.firstName 实际上是 (*employee).firstName ialah singkatan daripada.

Maksudnya *&employee.firstName 也与 (*employee).firstName sama.

Sila ambil perhatian bahawa anda harus sentiasa memilih menggunakan tatatanda trengkas.

Atas ialah kandungan terperinci Apakah perbezaan antara (*pembolehubah) dan *&pembolehubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan