Go语言之如何给*int32类型赋值

直接上代码:

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

运行结果:

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

下面的形式是不可以的:

  1. package main
  2. import “fmt”
  3. func main () {
  4. var num *int32
  5. *num = 5
  6. fmt.Println(“=====>:\t”, num)
  7. fmt.Println(“=====>:\t”, *num)
  8. }

运行结果:

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

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

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

Original: https://www.cnblogs.com/twoheads/p/12960961.html
Author: twoheads
Title: Go语言之如何给*int32类型赋值

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/535796/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球