加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

GO-&获取地址与*解引用

发布时间:2020-12-16 09:20:05 所属栏目:大数据 来源:网络整理
导读:变量 获取变量在内存空间的地址 *变量地址 获取变量的值 一.普通数据 package mainimport "fmt"func main(){b :=1111c :=b //获取b的地址c的类型时*inttest(c)fmt.Println(b) //值为333发送了变化}func test(a *int){*a=333}//可以与下面进行对比func main()

&变量 获取变量在内存空间的地址

*变量地址 获取变量的值

一.普通数据

package main

import "fmt"

func main(){
	b :=1111
	c :=&b  //获取b的地址c的类型时*int
	test(c)
	fmt.Println(b)  //值为333发送了变化
}
func test(a *int){
	*a=333
}
//可以与下面进行对比
func main(){
	b :=1111
	test(b)
	fmt.Println(b)
}
func test(a int){  //如果不是传入地址,他就会开辟一个新的内存空间对于原来值没有影响
	a=333
}

二.数组与切片(切片比较特殊)

//写法一
package main

import "fmt"

func main(){
	b :=&[]int{1,2,3}
	test(b)
	fmt.Println(b)
}
func test(a *[]int){
	(*a)[1]=3
}

//GO对于切片做了优化可以省略写内容
package main

import "fmt"

func main(){
	b :=[]int{1,3}
	test(b)
	fmt.Println(b)
}
func test(a []int){
	a[1]=3
}
//如果传入对象是值类型,不是引用类型这个不生效,只正对引用类型切片才生效,数组值类型不生效,只能按照方式一写

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读