zoukankan      html  css  js  c++  java
  • Golang指针

    Golang指针

    基本使用

    func main() {
    	i := 20
    	p := &i //var p *int = &i
    	fmt.Println("i的地址",&i)
    	fmt.Println("指针变量p",p)
    	fmt.Println("指针变量的值",*p)
        -------------------
        a := 20
    	var b *int = &a
    	fmt.Printf("%p 
    ",&a)
    	fmt.Printf("%p",b) //指针变量存储的地址
    	fmt.Printf("%p",&b)// 访问指针变量的地址
    }
    

    修改值

    func main() {
    	var num int32 = 20
    	var p *int32 = &num
    	*p = 100 //使用指针变量访问存储的地址, 修改存储的地址
    	fmt.Printf("*p = %d, num = %d",*p,num) // 100, 100
    }
    
    func main() {
    	var a,b int = 20,10
    	var p1,p2 *int = &a,&b
    	*p1 = 200
    	*p2 = 100
    	fmt.Printf("a = %d, b = %d, *p1 = %d, *p2 = %d",a,b,*p1,*p2)
    }
    

    注意

    值传递会复制一份,在函数修改后不会对外部的值产生影响

    func trans( inter interface{}){
    	//由于是值传递,所以这里取到的地址值不相同
    	p:=&inter 
    	fmt.Println(p)//0xc00003a1f0
    	*p=10
    }
    func main() {
    	num := 20
    	fmt.Println(&num)//0xc00000a0f8
    	trans(&num)
    	fmt.Println(num)//20
    }
    
  • 相关阅读:
    String和StringBuilder和StringBuffer
    多态
    组件
    反向代理
    基础知识
    reflection
    v-model 与 v-bind:model
    tomcat端口占用问题
    socket
    简要概括内存机制
  • 原文地址:https://www.cnblogs.com/kikochz/p/13443752.html
Copyright © 2011-2022 走看看