Latest web development tutorials

Ir ponteiro idioma

Ir linguagem ponteiro é fácil de aprender, utilize o ponteiro linguagem Go pode mais facilmente executar algumas tarefas.

Vamos passo a passo para aprender a língua Go ponteiro.

Nós todos sabemos que a variável é um espaço reservado conveniente para endereços de memória do computador de referência.

Vá buscar caracteres do idioma endereço é e, em uma variável antes de usar ele irá retornar o endereço de memória variável correspondente.

O exemplo a seguir demonstra o endereço da variável na memória:

package main

import "fmt"

func main() {
   var a int = 10   

   fmt.Printf("变量的地址: %x\n", &a  )
}

Executar os resultados de saída do código acima:

变量的地址: 20818a220

Agora que entendemos o que um endereço de memória e como acessá-lo. Em seguida, vamos introduzir ponteiro.


O que é um ponteiro

Um ponteiro pode apontar para qualquer endereço de memória valor da variável que aponta para o valor do endereço de memória.

Como variáveis ​​e constantes, antes de usar o ponteiro que você precisa declarar um ponteiro. declaração de ponteiro no seguinte formato:

var var_name *var-type

-Tipo var tipo de ponteiro, var_name é um nome de variável ponteiro, um asterisco é usado para especificar a variável como um ponteiro. O que se segue é uma declaração ponteiro válido:

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

Neste caso, é um ponteiro para int e ponteiro float32.


Como usar o ponteiro

processo de ponteiros:

  • Definir uma variável ponteiro.
  • variável ponteiro.
  • O valor do ponto de acesso variável ponteiro endereço.

Em frente ao tipo de ponteiro adicionar um asterisco (prefixo) para obter o ponteiro aponta.

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

Exemplos da implementação da saída acima é:

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

Ir ponteiro nulo

Quando, depois de um ponteiro não está definido atribuído a qualquer variável, seu valor é nulo.

ponteiro nulo também é chamado um ponteiro nulo.

nil nula em termos de conceito e outras línguas, Nada, nada, NULL, como todos se referem a zero ou valores em branco.

Uma variável ponteiro é comumente abreviado ptr.

Veja os seguintes exemplos:

package main

import "fmt"

func main() {
   var  ptr *int

   fmt.Printf("ptr 的值为 : %x\n", ptr  )
}

O exemplo acima saída é:

ptr 的值为 : 0

julgamento ponteiro nulo:

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

Ir ponteiro Mais

Em seguida, vamos introduzir mais línguas Ir aplicações ponteiros:

conteúdo descrição
Ir matriz ponteiro Você pode definir uma matriz ponteiro para armazenar o endereço
Ir ponteiro para um ponteiro Ir ponteiro suporte para um ponteiro
Ir como um dos parâmetros de ponteiro de função passado Por referência ou endereço do Senado, quando a chamada de função pode alterar seu valor