go实战基础(一)-go实战指针(八)-《GO开发知识笔记》

admin 2025-11-04 01:17:23 编程 来源:ZONE.CI 全球网 0 阅读模式
    1. package main
    2. import "fmt"
    3. func main() {
    4. //在计算机底层 a 这个变量其实对应了一个内存地址
    5. // var a int = 10
    6. // fmt.Printf("a的值:%v a的类型%T a的地址%p", a, a, &a) //a的值:10 a的类型int a的地址0xc0000100a8
    7. // 指针也是一个变量,但它是一种特殊的变量,它存储的数据不是一个普通的值,而是另 一个变量的内存地址
    8. // var a = 10
    9. // var p = &a //p指针变量 p的类型 *int(指针类型)
    10. // fmt.Printf("a的值:%v a的类型%T a的地址%p\n", a, a, &a)
    11. // fmt.Printf("p的值:%v p的类型%T", p, p)
    12. //每一个变量都有自己的内存地址
    13. var a = 10
    14. var p = &a //p指针变量 p的类型 *int(指针类型)
    15. fmt.Printf("a的值:%v a的类型%T a的地址%p\n", a, a, &a)
    16. fmt.Printf("p的值:%v p的类型%T p的地址%p", p, p, &p)
    17. }
    1. package main
    2. import "fmt"
    3. func main() {
    4. a := 10
    5. p := &a //p指针变量 类型 *int
    6. // *p :表示取出p这个变量对应的内存地址的值
    7. fmt.Println(p) //a的地址 0xc0000100a8
    8. fmt.Println(*p) //*p 表示打印a对应的值 10
    9. *p = 30 //改变p这个变量对应的内存地址的值
    10. fmt.Println(a) //30
    11. }
    1. package main
    2. import "fmt"
    3. func fn1(x int) {
    4. x = 10
    5. }
    6. func fn2(x *int) {
    7. *x = 40
    8. }
    9. func main() {
    10. var a = 5
    11. fn1(a)
    12. fmt.Println(a) //5
    13. fn2(&a)
    14. fmt.Println(a) //40
    15. }
    1. package main
    2. import "fmt"
    3. func main() {
    4. // var userinfo map[string]string
    5. // userinfo["username"] = "张三"
    6. // fmt.Println(userinfo)
    7. // var userinfo = make(map[string]string)
    8. // userinfo["username"] = "张三"
    9. // fmt.Println(userinfo)
    10. // var a []int
    11. // a[0] = 1
    12. // fmt.Println(a)
    13. // var a = make([]int, 4, 4)
    14. // a[0] = 1
    15. // fmt.Println(a)
    16. var a *int //指针也是引用数据类型
    17. *a = 100
    18. fmt.Println(*a)
    19. }
    1. package main
    2. import "fmt"
    3. func main() {
    4. // 实际想开发中 new 函数不太常用,使用 new 函数得到的是一个指类型针,并且该指针对应的值为该类型的零值
    5. // var a = new(int) //a是一个指针变量 类型是 *int的指针类型 指针变量对应的值是0
    6. // fmt.Printf("值:%v 类型:%T 指针变量对应的值:%v", a, a, *a) //值:0xc0000a0090 类型:*int 指针变量对应的值:0
    7. /*
    8. 错误的写法
    9. var a *int //指针也是引用数据类型
    10. *a = 100
    11. fmt.Println(*a)
    12. */
    13. //new方法给指针变量分配存储空间
    14. // var b *int
    15. // b = new(int)
    16. // *b = 100
    17. // fmt.Println(*b) // fmt.Println(*a)
    18. var f = new(bool)
    19. fmt.Println(*f) //false
    20. }
    以太坊cppgolang区别 编程

    以太坊cppgolang区别

    以太坊是一种去中心化的开源平台,它采用智能合约技术,旨在构建和运行不受干扰的分布式应用程序。作为目前最受欢迎的区块链平台之一,以太坊提供了多种编程语言的支持,其
    progolang 编程

    progolang

    Go语言(Golang)是由Google开发的一门静态类型编程语言。作为一名专业的Golang开发者,我深知这门语言的优势和特点。在本文中,我将介绍Golang
    golangn个发送者 编程

    golangn个发送者

    Golang是一种开源的编程语言,由Google团队开发,旨在提高程序的并发性和简化软件开发过程。在Go语言中,有时需要向多个接收者发送信息。本文将介绍如何在G
    golang技能图谱 编程

    golang技能图谱

    从互联网行业的快速发展到人工智能技术的日益成熟,各种编程语言也应运而生。而在这众多的编程语言中,Golang(即Go)作为一门强大且高效的开发语言备受关注。Go
    评论:0   参与:  7