Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah perbezaan antara (*pembolehubah) dan *&pembolehubah?

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

王林
王林ke hadapan
2024-02-05 21:30:041032semak imbas

(*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)
}

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam