首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Go编程基础-基础篇 9

Go编程基础-基础篇 9

原创
作者头像
未来最可爱的人
修改于 2021-03-03 01:35:40
修改于 2021-03-03 01:35:40
28100
代码可运行
举报
文章被收录于专栏:编程基础编程基础
运行总次数:0
代码可运行

指针的定义和使用

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
指针strP的地址为 0xc000118220
指针strP指向的值为 How are you
变量str的地址为 0xc000118220
变量str的值为 How are you

指针作为函数的参数

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
交换前的a= 10 b= 20
交换后的a= 20 b= 10

数组的声明

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
a的值 [0 0]
b的值 [[0 0] [0 0]]
c的值 [1 2]
d的值 [3 4]

数组的比较

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
a == c ?  false
c == d ? true

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

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

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

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

评论
作者已关闭评论
暂无评论
推荐阅读
编辑精选文章
换一批
100天精通Golang(基础入门篇)——第17天:深入解析Go语言中的指针
本篇文章主要深入解析Go语言中的指针,从指针的概念、获取变量地址,声明指针,空指针,获取指针的值,操作指针改变变量的数值,使用指针传递函数的参数,以及指针的指针等方面进行讲解和示例演示。
猫头虎
2024/04/08
1920
100天精通Golang(基础入门篇)——第17天:深入解析Go语言中的指针
Go基础之指针
指针是一个存储变量内存地址的变量。它们允许程序直接访问和操作内存中的数据,而不是对数据的副本进行操作。以下是指针的一些关键概念:
贾维斯Echo
2023/10/18
2360
Go基础之指针
Go语言入门——基础语法篇(二)
Go的语句是可以省略;结束符的,且每行尽可能只写一句代码,这是Go语言的编程范式,因此应遵循规范,不要加分号。分号只在一种情况下是必须的,当一行写了多个代码语句,则每个语句必须使用分号分隔。
arcticfox
2019/08/02
8360
Go语言入门——基础语法篇(二)
Go 语言基础入门教程 —— 数据类型篇:指针的概念和基本使用
我们知道,变量的本质对一块内存空间的命名,可以通过引用变量名来使用这块内存空间存储的值,而指针的含义则指向存储这些变量值的内存地址。和 PHP、Java 不同,Go 语言支持指针,如果一个变量是指针类型的,那么就可以用这个变量来存储指针类型的值:
学院君
2019/08/08
5400
Golang基础之数组 转
数组是同一类型元素的集合。例如,整数集合 5,8,9,79,76 形成一个数组。Go 语言中不允许混合不同类型的元素,例如包含字符串和整数的数组。(注:当然,如果是 interface{} 类型数组,可以包含任意类型) 。
双面人
2019/04/10
5380
go语言第五章(指针)
在 Go 语言中,指针是一种特殊的数据类型,它用于存储变量的内存地址。通过操作指针,可以直接访问和修改变量的值,从而实现更高效和灵活的编程。
GeekLiHua
2025/01/21
910
go语言第五章(指针)
100天精通Golang(基础入门篇)——第10天:Go语言中的数组
本篇文章是100天"学习Golang"系列文章的第10篇,主要介绍了Go语言中的数组以及数组的语法、多维数组、数组是值类型等内容。通过阅读本篇文章,读者能够了解到如何在Go语言中定义和使用数组,并掌握一些实用的代码技巧。
猫头虎
2024/04/08
3310
100天精通Golang(基础入门篇)——第10天:Go语言中的数组
Go编程基础-基础篇 10
在切片中可以使用len()获取切片中元素的数量,也就是切片的长度。使用cap()可以获取切片引用的数组的长度,也就切片的容量
未来最可爱的人
2021/03/04
2350
Go编程基础-基础篇 10
[GO语言基础] 三.变量声明、数据类型、标识符及编程练习
作为网络安全初学者,会遇到采用Go语言开发的恶意样本。因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识;另一方面是分享与读者,希望大家一起进步。前文介绍了Go的编译运行、语法规范、注释转义及API标准库知识;这篇文章将介绍Golang的变量、数据类型和标识符知识,并通过12道编程练习进行提升。这系列文章入门部分将参考“尚硅谷”韩顺平老师的视频和书籍《GO高级编程》,详见参考文献,并结合作者多年的编程经验进行学习和丰富,且看且珍惜吧!后续会结合网络安全进行GO语言实战深入,加油~
Eastmount
2021/12/03
7200
[GO语言基础] 三.变量声明、数据类型、标识符及编程练习
[GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题
作为网络安全初学者,会遇到采用Go语言开发的恶意样本。因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识;另一方面是分享与读者,希望大家一起进步。前文介绍了Go的编译运行、语法规范、注释转义及API标准库知识;这篇文章将介绍Golang的变量、数据类型和标识符知识,并通过12道编程练习进行提升。 这系列文章入门部分将参考“尚硅谷”韩顺平老师的视频和书籍《GO高级编程》,详见参考文献,并结合作者多年的编程经验进行学习和丰富,且看且珍惜吧!后续会结合网络安全进行GO语言实战深入,加油~
Eastmount
2021/02/25
8230
golang 基础编程
map 是一种无序的键值对, 它是数据结构 hash 表的一种实现方式,类似 Python 中的字典
全栈程序员站长
2022/07/19
1.3K0
golang 基础编程
【从零开始学习Go语言】九.Go语言之变量常量及指针总结
所谓指针其实你可以把它想像成一个箭头,这个箭头指向(存储)一个变量的地址 因为这个箭头本身也需要变量来存储,所以也叫做指针变量。
一只特立独行的兔先生
2020/03/26
4.1K0
【从零开始学习Go语言】九.Go语言之变量常量及指针总结
【Go】Golang环境配置与语法基础
Go(也被称为 Golang)是一种开源的静态类型编程语言,由 Google 开发并于2009年首次公开发布。Go 语言的设计目标是提供一种简单、高效、可靠的编程语言,适用于构建大型项目的并发和网络应用。
DevFrank
2024/07/24
1580
Go复合数据类型数组和切片
数组 声明&&初始化数组 数组声明需要指定元素及元素个数,语法格式如下 数组用来存储相同唯一类型的,一组已编号且长度固定的序列 var arr_name[num] arr_type package main import "fmt" func main() { // 写添加元素的个数 var test [5]string fmt.Println(test) for i:=0; i< 4; i++{ test[i+1] = "test" } fmt.Println(test) // 不
Wyc
2023/02/27
4830
3.Go编程快速入门学习
比如:var a [5]int, 数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变。注意: [5]int和[10]int是不同的类型。
全栈工程师修炼指南
2022/09/29
4320
3.Go编程快速入门学习
golang学习笔记之一 - 基础知识与概念
go中字符称为rune,等价于C中的char,可直接与整数转换。rune实际是整型,必需先将其转换为string才能打印出来,否则打印出来的是一个ascii整数
躺平程序员老修
2023/09/05
2810
GO语言基础
golang可执行程序, package main,并且有且只有一个main入口函数
用户9645905
2023/10/27
2940
GO语言基础
Go-常识补充-切片-map(类似字典)-字符串-指针-结构体
fmt.Printf("%T", a) ,注意,用的是 fmt.Printf 函数,a 指的是要查看类型的变量
suwanbin
2019/12/12
1.3K0
三十分钟入门基础Go
Tech 导读 本篇文章适用于学习过其他面向对象语言(Java、Php),但没有学过Go语言的初学者。文章主要从Go与Java功能上的对比来阐述Go语言的基础语法、面向对象编程、并发与错误四个方面,能够让读者快速认识Go的相关语法与特性。
京东技术
2023/09/11
2870
三十分钟入门基础Go
Go - 快速入门
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
李郑
2019/12/12
8770
相关推荐
100天精通Golang(基础入门篇)——第17天:深入解析Go语言中的指针
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档