Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen (*Variable) und *&Variable?

Was ist der Unterschied zwischen (*Variable) und *&Variable?

王林
王林nach vorne
2024-02-05 21:30:04823Durchsuche

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

Frageninhalt

Ich lerne, mit exercism.com loszulegen und die im Lehrplan empfohlenen Dokumentationen und Artikel zu lesen.

Jetzt bin ich in der Struktur und habe den nächsten Code gefunden

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

Aber versehentlich habe ich fmt.println("firstname", *&employee.firstname) eingegeben, was zu dem gleichen Ergebnis führte, das ich zuvor im Codeblock verwendet hatte.

Meine Frage ist, gibt es einen Unterschied oder den gleichen bei der Verwendung dieses Zeigers?


Richtige Antwort


&x 生成一个指向 x 的指针,而 *p 取消引用指针 p。因此 *& 有效地相互抵消,例如 v := *&xv := x Beide Aussagen sind gleich.

Es bedeutet *&employee.firstNameemployee.firstName dasselbe.

Die Abkürzung von employee 是指向结构体的指针,而 firstName 是该结构体的字段,则表达式 employee.firstName 实际上是 (*employee).firstName.

Es bedeutet *&employee.firstName 也与 (*employee).firstName dasselbe.

Bitte beachten Sie, dass Sie immer die Kurzschrift bevorzugen sollten.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen (*Variable) und *&Variable?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen