notas ir estudar o desenvolvimento do núcleo (cinco) - Pointer

tipos de dados complexos:

  1. ponteiro ponteiro
  2. array
  3. estrutura estrutura, alternativa classe
  4. canal oleoduto
  5. Função (também um tipo de função)
  6. fatia fatia
  7. Interface Interface
  8. mapear (hashmap semelhante, conjunto), relativamente simples e não complicado, o equivalente a outra língua mapa, só isso.

Ponteiro:
todas as referências relacionadas relaciona ponteiro;
tipos de dados base, o valor variável é armazenado, também chamado de tipo de valor;
Análise tipos básicos de layout de dados na memória.

  • O que é uma variável ponteiro:

    package main
    
    import "fmt"
    
    func main() {
    var num int = 200
    fmt.Println(&num)       //num变量的内存地址0xXXXXXXXX
    var ptr *int = &num     //指针变量是num变量的内存地址0xXXXXXXXX,即ptr=&num,ptr数据类型为指针
    fmt.Println(ptr)        //内存地址0xXXXXXXXX
    fmt.Println(*ptr)       //内存地址0xXXXXXXXX对应的值,也就是num变量对应的变量值
    fmt.Println(**&ptr)     //*&ptr相同于ptr,**&prt==*prt,也就是取本内存地址0xXXXXXXXX的变量值
    }
    
  • Alterar o valor armazenado na memória pela variável de ponteiro:

    package main
    
    import "fmt"
    
    func main() {
    var a int = 100       //变量值为100
    var ptr *int = &a     //定义一个指针变量,指向a的内存地址
    *ptr = 200            //将内存地址对应的变量值修改为200
    fmt.Println(a)        //再打印a,对应变量值变为200
    }
    
  • Modificar o valor do ponteiro string:

    package main
    
    import "fmt"
    
    func main() {
    
    var b string = "shit!"
    var ptr1 *string = &b
    *ptr1 = "hit!"
    fmt.Println(b)
    }
    
  • Tipos de valor e tipos de referência:

  1. Tipo de valor: tipos de dados básicos, string, array, struct
  2. Tipos de referência: ponteiro, fatia, mapa, canal, de interface
  • Para a área de pilha e a lógica memória heap: o
    tipo de valor é geralmente na alocação área de pilha, atribuição direta variável;
    tipo de referência é geralmente alocados na área de montão, é armazenado em um endereço da variável, o endereço correspondente ao armazenamento de dados espaço real ( um valor variável) quando não há referências de variáveis que endereço, GC se torna resíduos são reciclados
    , uma vez que a pilha é um conceito lógico, não distinguem de modo detalhado, alguns compiladores mesmo as pilhas são mesclados, variável golang de acordo com a duração do ciclo de vida julgamento na zona de extremidade na pilha ou amontoado região.
Publicado 50 artigos originais · ganhou elogios 18 · vista 4024

Acho que você gosta

Origin blog.csdn.net/weixin_41047549/article/details/89578491
Recomendado
Clasificación