重点:一个指针的值是另一个变量的地址。一个指针对应变量在内存中的存储位置。并不是每一个值都会有一个内存地址,但是对于每一个变量必然有对应的内存地址。

& 返回变量的内存地址,也叫取址符。

* 返回变量的值, * 只能作用在指针上

package main

import "fmt"

func main()  {
    var a = 5
    var p = &a // p 持有变量 a 的内存地址。也就是说 p 的值就是 a 的内存地址,p 的内存地址还需要再一次取址
    fmt.Printf("a 的值: %v\n", *p)
    fmt.Printf("a 的内存地址: %p\n", p)
    fmt.Printf("p 的值: %v\n", p)     // p 的值与 a 的内存地址一样
    fmt.Printf("p 的内存地址: %p\n", &p) // p 的内存地址

    // 用初始的变量或指针改变值
    *p = 3 // 用指针
    a = 3  // 用初始变量
    fmt.Printf("a 的内存地址: %p\n", p)
    fmt.Printf("a 的值: %v\n", *p)
}

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-26
  • 2021-11-06
  • 2022-02-19
  • 2022-12-23
  • 2021-11-14
  • 2021-10-29
相关资源
相似解决方案