Heim  >  Artikel  >  Backend-Entwicklung  >  Hat die Go-Sprache Zeiger?

Hat die Go-Sprache Zeiger?

藏色散人
藏色散人Original
2021-01-18 14:52:353872Durchsuche

Die Go-Sprache verfügt über Zeiger; die Verwendung von Zeigern in der Go-Sprache kann einfach einige Aufgaben ausführen. Die Deklarationssyntax des Zeigerformats lautet „var var_name *var-type“, wobei die Parameter „var-type“ Zeigertypen sind. var_name" " ist der Name der Zeigervariablen und das *-Zeichen wird verwendet, um anzugeben, dass die Variable als Zeiger verwendet wird.

Hat die Go-Sprache Zeiger?

Die Demonstrationsumgebung dieses Artikels: Windows 7-System, Go1.11.2-Version, Dell G3-Computer.

Go-Sprache hat Hinweise.

Die Verwendung von Zeigern in der Go-Sprache kann die Ausführung einiger Aufgaben erleichtern.

Wir alle wissen, dass eine Variable ein praktischer Platzhalter ist, der auf die Speicheradresse eines Computers verweist.

Das Adressabrufzeichen in der Go-Sprache ist &. Bei Verwendung vor einer Variablen wird die Speicheradresse der entsprechenden Variablen zurückgegeben.

Das folgende Beispiel zeigt die Adresse einer Variablen im Speicher:

Beispiel

package main
import "fmt"
func main() {
   var a int = 10  
   fmt.Printf("变量的地址: %x\n", &a  )
}

Das Ausgabeergebnis der Ausführung des obigen Codes ist:

变量的地址: 20818a220

Jetzt haben wir verstanden, was eine Speicheradresse ist und wie man darauf zugreift. Als nächstes werden wir die Hinweise im Detail vorstellen.

Was ist ein Zeiger?

Eine Zeigervariable zeigt auf die Speicheradresse eines Werts.

Ähnlich wie bei Variablen und Konstanten müssen Sie einen Zeiger deklarieren, bevor Sie ihn verwenden können. Das Format der Zeigerdeklaration lautet wie folgt:

var var_name *var-type

var-type ist der Zeigertyp, var_name ist der Name der Zeigervariablen und das *-Zeichen wird verwendet, um anzugeben, dass die Variable als Zeiger verwendet wird. Das Folgende sind gültige Zeigerdeklarationen:

var ip *int        /* 指向整型*/
var fp *float32    /* 指向浮点型 */

In diesem Fall ist dies ein Zeiger auf int und float32.

So verwenden Sie Zeiger

Zeigerverwendungsprozess:

  • Definieren Sie Zeigervariablen.

  • Weisen Sie einer Zeigervariablen einen Wert zu.

  • Greifen Sie auf den Wert zu, der auf die Adresse in der Zeigervariablen zeigt.

Fügen Sie das *-Zeichen (Präfix) vor dem Zeigertyp hinzu, um den Inhalt zu erhalten, auf den der Zeiger zeigt.

Beispiel

package main
import "fmt"
func main() {
   var a int= 20   /* 声明实际变量 */
   var ip *int        /* 声明指针变量 */
   ip = &a  /* 指针变量的存储地址 */
   fmt.Printf("a 变量的地址是: %x\n", &a  )
   /* 指针变量的存储地址 */
   fmt.Printf("ip 变量储存的指针地址: %x\n", ip )
   /* 使用指针访问值 */
   fmt.Printf("*ip 变量的值: %d\n", *ip )
}

Die Ausführungsausgabe des obigen Beispiels lautet:

a 变量的地址是: 20818a220
ip 变量储存的指针地址: 20818a220
*ip 变量的值: 20

Go null pointer

Wenn ein Zeiger definiert und keiner Variablen zugewiesen ist, ist sein Wert Null.

Nullzeiger werden auch Nullzeiger genannt.

nil ist konzeptionell dasselbe wie null, None, nil und NULL in anderen Sprachen und bezieht sich alle auf Null oder leere Werte.

Eine Zeigervariable wird normalerweise als ptr abgekürzt.

Sehen Sie sich die folgenden Beispiele an:

Beispiel

package main
import "fmt"
func main() {
   var  ptr *int
   fmt.Printf("ptr 的值为 : %x\n", ptr  )
}

Das Ausgabeergebnis des obigen Beispiels ist:

ptr 的值为 : 0

Nullzeiger-Urteil:

if(ptr != nil)     /* ptr 不是空指针 */
if(ptr == nil)    /* ptr 是空指针 */

Weitere technische Artikel zu Go Language finden Sie in der Tutorial-Spalte zu Go LanguageTutorial !

Das obige ist der detaillierte Inhalt vonHat die Go-Sprache Zeiger?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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