首页 > 其他分享 >09-Go语言的指针和结构体

09-Go语言的指针和结构体

时间:2022-11-10 13:45:58浏览次数:36  
标签:p2 p1 Person fmt 09 Println Go 指针

指针的声明

func main() {
	a := 10
	var p1 *int
	p1 = &a
	//指针保存的地址
	fmt.Println(p1)
	//指针本身的地址
	fmt.Println(&p1)
	//指针指向保存的数据
	fmt.Println(*p1)
	//通过指针,修改a的变量
	*p1 = 100
	fmt.Println(a)
	var p2 **int
	p2 = &p1
	//p1的地址
	fmt.Println(p2)
	//p2的地址
	fmt.Println(&p2)
	fmt.Println(**p2)
}

数组指针

        (*p3)[0] = 100
	fmt.Println(arr)
	p3[0] = 200
	fmt.Println(arr)
	fmt.Println("===========================")

	b := 2
	c := 3
	d := 4
	arr2 := [3]*int{&b, &c, &d}
	b = 888
	for i := 0; i < len(arr2); i++ {
		fmt.Println(*arr2[i])
	}

结构体

	var person1 Person
	//初始化默认所有字段的0值
	fmt.Println(person1)
	person2 := Person{}
	person2.age = 20
	person2.name = "Wayne"
	//注意结尾有逗号
	person3 := Person{
		name: "wayne",
		age:  20,
	}
	fmt.Println(person3)
	person4 := Person{name: "Wayne"}
	fmt.Println(person4)
	//注意需要填写所有字段
	person5 := Person{"Wayne", 20}
	fmt.Println(person5)
        person1 = person2
	person1.age = 100
	fmt.Println(person2)
type Person struct {
	name string
	age  int
}

注意结构体是值类型

结构体字段提升

注意,需要是匿名字段

func main() {
        student := Student{}
	student.school = "BD"
	student.name = "wang er gou"
	student.age = 16
	fmt.Println(student)
}

type Person struct {
	name string
	age  int
}
type Student struct {
	Person
	school string
}

标签:p2,p1,Person,fmt,09,Println,Go,指针
From: https://www.cnblogs.com/huacha/p/16867961.html

相关文章

  • golang - go文件编码
    必须为utf-8格式win系统一般默认CRLF模式但是如果在linux系统会不支持CRLF模式因此最好使用LF,两个环境都兼容,这样就不会头疼了,不然需要单独转一下 ......
  • 好用的在线客服系统Go语言源码-GOFLY ( 开源代码+安装教程)
    功能列表1.即时通讯2.访客链接3.公告信息4.欢迎信息5.离线信息5.单点登录6.浏览器通知7.邮箱通知搭建运行环境Linux环境逐句执行以下命令wgethttps:......
  • golang - win10 下载、安装、运行首个go文件
    1.下载运行环境官网地址https://golang.google.cn/dl/ 可以直接下载msi文件夹,双击后会自动安装环境,但作为一个程序员,但是,这种傻瓜式的安装容易带来风险,习惯性的喜......
  • Go 面试每天一篇(第 36 天)
    十一长假已经结束,收拾心情准备进入工作状态。一起来看下1.关于bool变量b的赋值,下面错误的用法是?A.b=trueB.b=1C.b=bool(1)D.b=(1==2)参考答案及解析:BC。......
  • Go 面试每天一篇(第 66 天)
    1.flag是bool型变量,下面if表达式符合编码规范的是?A.ifflag==1B.ifflagC.ifflag==falseD.if!flag参考答案及解析:BCD。2.下面的代码输出什么,请说明?1funcmai......
  • Go 面试每天一篇(第 53 天)
    你好哇,欢迎来答题,一起来看下1.下面的代码有什么问题?1typeXstruct{}23func(x*X)test(){4println(x)5}67funcmain(){89vara*X10a.test()111......
  • Go 面试每天一篇(第 37 天)
    你好哇,欢迎来答题!一起来看下1.关于函数声明,下面语法正确的是?A.funcf(a,bint)(valueint,errerror)B.funcf(aint,bint)(valueint,errerror)C.funcf(a,b......
  • Go 面试每天一篇(第 35 天)
    你好哇,今天是假期前最后一天,提前祝大家假期玩的愉快!老规矩,放假期间公号会停更,看完今天的文章,咱们节后继续!一起来看下1.关于类型转化,下面选项正确的是?A.typeMyIntintvari......
  • Go 面试每天一篇(第 54 天)
    你好哇,欢迎来答题,一起来看下1.关于channel下面描述正确的是?A.向已关闭的通道发送数据会引发panic;B.从已关闭的缓冲通道接收数据,返回已缓冲数据或者零值;C.无论接收还......
  • Go 面试每天一篇(第 33 天)
    今天周六,再坚持两天就放假啦,期待!一起来看下1.下面这段代码输出结果正确吗?typeFoostruct{barstring}funcmain(){s1:=[]Foo{{"A"},{"B"},......