golang-学习记录-指针

package main

import "fmt"

//Go 语言指针
func main() {
    var a int= 3000  // 定义一个变量
    var prtst *int // 定义一个指针
    var pprtst **int // 定义一个指针的指针
    prtst = &a
    pprtst = &prtst
    fmt.Println(a)
    fmt.Println(*prtst)
    fmt.Println(**pprtst)

    var d int= 20
    var c *int
    c = &d
    fmt.Printf("b变量内存地址是: %x\n", &d  )
    fmt.Printf("c变量储存的指针地址是: %x\n", c )
    fmt.Printf("c变量的值是: %d\n", *c)

    var prts *int
    if prts!=nil{
        fmt.Println("非空")
    } else {
        fmt.Println("")
    }
    //定义一个数组
    vas1:=[]int{100,200,300}
    //定义一个常量
    const max int = 3

    fmt.Println(vas1)
    //定义一个指针数组
    var prt [max]*int
    var i int
    for i=0;i<max;i++{
        prt[i] = &vas1[i]  //把数组的各个元素赋值给指针数组
    }
    var vas2 []int
    for i=0;i<max;i++ {
        fmt.Println(*prt[i])  //获取指针数组代表的数组
        vas2=append(vas2, *prt[i])
    }
    fmt.Println(vas2)
    var v int = 1
    var b int = 2
    // 向函数中传递指针
    swapst(&v,&b)

}

func swapst(a *int, b *int)  {
    fmt.Println(a,b)
    fmt.Println(*a, *b)
}

 

posted @ 2021-08-18 17:25  sin涛涛  阅读(36)  评论(0)    收藏  举报