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?
&x
生成一个指向 x
的指针,而 *p
取消引用指针 p
。因此 *
和 &
有效地相互抵消,例如 v := *&x
和 v := x
Beide Aussagen sind gleich.
Es bedeutet *&employee.firstName
与 employee.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!