前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go编程基础-基础篇 9

Go编程基础-基础篇 9

原创
作者头像
未来最可爱的人
修改2021-03-03 09:35:40
2580
修改2021-03-03 09:35:40
举报
文章被收录于专栏:编程基础编程基础

指针的定义和使用

采用 * 符号来区分正常类型变量和指针变量

代码语言:javascript
复制
package main

import "fmt"

func main() {
	str := "Hello world"
	var strP *string
	strP = &str
	*strP = "How are you"
	fmt.Println("指针strP的地址为", strP)
	fmt.Println("指针strP指向的值为", *strP)
	fmt.Println("变量str的地址为", &str)
	fmt.Println("变量str的值为", str)
}
代码语言:javascript
复制
指针strP的地址为 0xc000118220
指针strP指向的值为 How are you
变量str的地址为 0xc000118220
变量str的值为 How are you

指针作为函数的参数

Go 语言中只有值传递,没有引用传递,想要指针作为参数传入函数中,只能传递地址进入函数进行修改

代码语言:javascript
复制
package main

import "fmt"

func swap(a, b *int) {
	*a, *b = *b, *a
}

func main() {
	a := 10
	b := 20
	fmt.Println("交换前的a=", a, "b=", b)
	swap(&a, &b)
	fmt.Println("交换后的a=", a, "b=", b)
}
代码语言:javascript
复制
交换前的a= 10 b= 20
交换后的a= 20 b= 10

数组的声明

代码语言:javascript
复制
package main

import "fmt"

func main() {
	var a [2]int           //声明一个长度为2的一维数组。自动初始化为零值
	var b [2][2]int        //声明一个2行2列的二维数组。自动初始化为零值
	var c = [2]int{1, 2}   //声明并定义一个长度为2,值为[1,2]的数组
	var d = [...]int{3, 4} //使用 ... 表示根据数组后值的长度自动初始化长度。因为后面的值是 [3,4] 数组自动初始化长度为 2

	fmt.Println("a的值", a)
	fmt.Println("b的值", b)
	fmt.Println("c的值", c)
	fmt.Println("d的值", d)
}
代码语言:javascript
复制
a的值 [0 0]
b的值 [[0 0] [0 0]]
c的值 [1 2]
d的值 [3 4]

数组的比较

数组的长度是否相等,数组中存放的值是否顺序和大小完全相同。只要这两个部分相等,则 Go 语言中的两个数组就是相等的

代码语言:javascript
复制
package main

import "fmt"

func main() {
	var a [2]int
	var c = [2]int{1, 2}
	var d = [...]int{1, 2}
	fmt.Println("a == c ? ", a == c)
	fmt.Println("c == d ?", c == d)
}
代码语言:javascript
复制
a == c ?  false
c == d ? true

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 指针的定义和使用
  • 指针作为函数的参数
  • 数组的声明
  • 数组的比较
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档