zoukankan      html  css  js  c++  java
  • Go语言之如何给*int32类型赋值

    直接上代码:

    1.  
      package main
    2.  
       
    3.  
      import "fmt"
    4.  
       
    5.  
      func main() {
    6.  
      var num *int32
    7.  
      var i int32 = 5
    8.  
      // 针对*int32的,先创建一个i类型,然后取i的地址,赋值给*int32
    9.  
      num = &i
    10.  
      fmt.Println("=====>: ", num)
    11.  
      fmt.Println("=====>: ", *num)
    12.  
      }

    运行结果:

    1.  
      =====>: 0xc042064080
    2.  
      =====>: 5
    3.  
       
    4.  
      Process finished with exit code 0

    下面的形式是不可以的:

    1.  
      package main
    2.  
       
    3.  
      import "fmt"
    4.  
       
    5.  
      func main() {
    6.  
      var num *int32
    7.  
      *num = 5
    8.  
      fmt.Println("=====>: ", num)
    9.  
      fmt.Println("=====>: ", *num)
    10.  
      }

    运行结果:

    1.  
      panic: runtime error: invalid memory address or nil pointer dereference
    2.  
      [signal 0xc0000005 code=0x1 addr=0x0 pc=0x48b4ea]
    3.  
       
    4.  
      goroutine 1 [running]:
    5.  
      main.main()
    6.  
      E:/Program/go2/goPath/src/xingej-go/xingej-go/xingej-go666/string/test.go:7 +0x2a
    7.  
       
    8.  
      Process finished with exit code 2

    原因?
      可能是取不到常量5的地址

    转载于:https://blog.51cto.com/xingej/2117313

  • 相关阅读:
    [CF1051F] The Shortest Statement
    [国家集训队] 墨墨的等式
    [CF558E] A Simple Task
    [洛谷P1349] 广义斐波那契数列
    [TJOI2009] 猜数字
    [洛谷P3403] 跳楼机
    学习力
    启动流程
    《鸟哥Linux》笔记——磁盘分区
    indexDB数据库
  • 原文地址:https://www.cnblogs.com/twoheads/p/12960961.html
Copyright © 2011-2022 走看看