Heim > Backend-Entwicklung > Golang > Der Unterschied zwischen Golang-Zeigern und Referenzen

Der Unterschied zwischen Golang-Zeigern und Referenzen

下次还敢
Freigeben: 2024-04-21 00:52:05
Original
794 Leute haben es durchsucht

Sowohl Zeiger als auch Referenzen werden verwendet, um indirekt auf Variablen zuzugreifen: Der Zeiger zeigt auf die Variablenadresse und auf die Variable wird direkt zugegriffen. Referenzen sind Aliase, die Zeiger auf Variablen speichern und indirekt auf Variablen zugreifen. Zeiger werden mit * definiert und dereferenziert, und eine Änderung des Zeigers wirkt sich auf die Variable aus. Verwenden Sie zum Referenzieren &, um die Adresse abzurufen, und *, um auf die Adresse zu verweisen. Das Ändern der Referenz hat keine Auswirkungen auf die Variable. Zeiger können auf jede Variable verweisen, Referenzen können nur auf Variablen verweisen.

Der Unterschied zwischen Golang-Zeigern und Referenzen

Golang-Zeiger und Referenzen

Unterschied zwischen Zeigern und Referenzen

Sowohl Zeiger als auch Referenzen sind Mechanismen in Golang für den indirekten Zugriff auf Variablen. Der Hauptunterschied ist:

  • Ein Zeiger ist eine Variable, die die Adresse einer anderen Variablen enthält. Es zeigt direkt auf die Variable.
  • Eine Referenz ist ein Alias, der einen Zeiger auf eine andere Variable speichert. Referenzen verweisen nicht direkt auf Variablen.

Zeiger

  • Verwenden Sie die *-Notation, um Zeiger zu definieren und zu dereferenzieren. * 符号定义和取消引用指针。
  • 指针指向变量的值,而不是直接包含该值。
  • 对指针进行修改会影响被指向的变量。
  • 指针可以指向任何类型的变量,包括其他指针。

引用

  • 使用 & 符号获取变量的地址,使用 * 符号引用已获取的地址。
  • 引用始终指向变量的地址。
  • 修改引用不会影响被指向的变量。
  • 引用只能指向其他变量,不能指向指针。

示例

<code class="go">package main

import "fmt"

func main() {
    // 创建一个变量
    x := 10

    // 创建一个指向 x 的指针
    p := &x

    // 创建一个引用 x 的引用
    q := &x

    // 通过指针修改变量
    *p = 20

    // 引用不会影响变量
    *q++

    // 打印结果
    fmt.Println("x:", x) // 输出: 20
}</code>
Nach dem Login kopieren

在这个示例中:

  • p 是一个指向 x 的指针,对 *p 的修改会更新 x 的值。
  • q 是指向 x 的引用,对 *q 的修改不会更新 x
  • Der Zeiger zeigt auf den Wert der Variablen, anstatt den Wert direkt zu enthalten.
🎜Das Ändern des Zeigers wirkt sich auf die Variable aus, auf die gezeigt wird. 🎜🎜Zeiger können auf Variablen jeden Typs zeigen, einschließlich anderer Zeiger. 🎜🎜🎜🎜Zitat🎜🎜🎜🎜Verwenden Sie die Symbole &, um die Adresse einer Variablen abzurufen, und verwenden Sie die Symbole *, um auf die erhaltene Adresse zu verweisen. 🎜🎜Referenzen verweisen immer auf die Adresse einer Variablen. 🎜🎜Das Ändern der Referenz hat keine Auswirkungen auf die Variable, auf die verwiesen wird. 🎜🎜Referenzen können nur auf andere Variablen verweisen, nicht auf Zeiger. 🎜🎜🎜🎜Beispiel🎜🎜rrreee🎜In diesem Beispiel: 🎜🎜🎜p ist ein Zeiger auf x, für *p Modifikationen aktualisieren die Wert von x. 🎜🎜q ist ein Verweis auf x und Änderungen an *q aktualisieren den Wert von x nicht. 🎜🎜

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Golang-Zeigern und Referenzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage