Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Go编程基础-基础篇 9

Go编程基础-基础篇 9

原创
作者头像
未来最可爱的人
修改于 2021-03-03 01:35:40
修改于 2021-03-03 01:35:40
28500
代码可运行
举报
文章被收录于专栏:编程基础编程基础
运行总次数: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 删除。

评论
作者已关闭评论
暂无评论
推荐阅读
编辑精选文章
换一批
Go编程基础-基础篇 10
在切片中可以使用len()获取切片中元素的数量,也就是切片的长度。使用cap()可以获取切片引用的数组的长度,也就切片的容量
未来最可爱的人
2021/03/04
2420
Go编程基础-基础篇 10
Go编程基础-基础篇 12
range 可以用来遍历的对象有数组、切片、map、字符串以及通道。遍历的对象不同,range 的返回值也会有所不同。遍历数组、切片和字符串时,它返回的就是数据的索引和值。遍历map时返回的就是map的key和value。而遍历通道时则只返回通道中的数据。
未来最可爱的人
2021/03/20
3650
Go编程基础-基础篇 12
go语言第五章(指针)
在 Go 语言中,指针是一种特殊的数据类型,它用于存储变量的内存地址。通过操作指针,可以直接访问和修改变量的值,从而实现更高效和灵活的编程。
GeekLiHua
2025/01/21
1020
go语言第五章(指针)
Go 语言基础入门教程 —— 数据类型篇:指针的概念和基本使用
我们知道,变量的本质对一块内存空间的命名,可以通过引用变量名来使用这块内存空间存储的值,而指针的含义则指向存储这些变量值的内存地址。和 PHP、Java 不同,Go 语言支持指针,如果一个变量是指针类型的,那么就可以用这个变量来存储指针类型的值:
学院君
2019/08/08
5540
Go语言入门——数组、切片和映射(下)
  不管是数组、切片还是映射结构,都是一种集合类型,要从这些集合取出元素就要查找或者遍历。
JackieZheng
2019/05/28
6820
【从零开始学习Go语言】九.Go语言之变量常量及指针总结
所谓指针其实你可以把它想像成一个箭头,这个箭头指向(存储)一个变量的地址 因为这个箭头本身也需要变量来存储,所以也叫做指针变量。
一只特立独行的兔先生
2020/03/26
4.1K0
【从零开始学习Go语言】九.Go语言之变量常量及指针总结
三十分钟入门基础Go
Tech 导读 本篇文章适用于学习过其他面向对象语言(Java、Php),但没有学过Go语言的初学者。文章主要从Go与Java功能上的对比来阐述Go语言的基础语法、面向对象编程、并发与错误四个方面,能够让读者快速认识Go的相关语法与特性。
京东技术
2023/09/11
3100
三十分钟入门基础Go
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
4970
100天精通Golang(基础入门篇)——第10天:Go语言中的数组
本篇文章是100天"学习Golang"系列文章的第10篇,主要介绍了Go语言中的数组以及数组的语法、多维数组、数组是值类型等内容。通过阅读本篇文章,读者能够了解到如何在Go语言中定义和使用数组,并掌握一些实用的代码技巧。
猫头虎
2024/04/08
3700
100天精通Golang(基础入门篇)——第10天:Go语言中的数组
Golang基础之数组 转
数组是同一类型元素的集合。例如,整数集合 5,8,9,79,76 形成一个数组。Go 语言中不允许混合不同类型的元素,例如包含字符串和整数的数组。(注:当然,如果是 interface{} 类型数组,可以包含任意类型) 。
双面人
2019/04/10
5510
Go基础之指针
指针是一个存储变量内存地址的变量。它们允许程序直接访问和操作内存中的数据,而不是对数据的副本进行操作。以下是指针的一些关键概念:
贾维斯Echo
2023/10/18
2710
Go基础之指针
4.Go编程快速入门学习
描述: Go 语言中的指针区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算是安全指针。
全栈工程师修炼指南
2022/09/29
7300
4.Go编程快速入门学习
【Go】Golang环境配置与语法基础
Go(也被称为 Golang)是一种开源的静态类型编程语言,由 Google 开发并于2009年首次公开发布。Go 语言的设计目标是提供一种简单、高效、可靠的编程语言,适用于构建大型项目的并发和网络应用。
DevFrank
2024/07/24
2120
Golang语言循环、指针、结构体和切片(打卡第二天)|Go主题月
for循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环
微芒不朽
2022/09/13
4650
Go - 快速入门
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
李郑
2019/12/12
8990
GO语言基础
golang可执行程序, package main,并且有且只有一个main入口函数
用户9645905
2023/10/27
3280
GO语言基础
9. Go复合类型-数组
前面我们已经学习了一些简单的基本类型,现在学习复合类型,复合类型主要包括了数组,指针,切片,结构体等。现在先来学习数组.
Devops海洋的渔夫
2021/07/29
6440
Go语言基础速刷手册
这个“不务正业”的阿巩,今天冒着现学现卖的风险来和大家分享Go了,作为既具备C的理念又有Python 姿态的语言,怎么能不来试上一试呢!
才浅Coding攻略
2022/12/12
9710
Go语言入门——基础语法篇(二)
Go的语句是可以省略;结束符的,且每行尽可能只写一句代码,这是Go语言的编程范式,因此应遵循规范,不要加分号。分号只在一种情况下是必须的,当一行写了多个代码语句,则每个语句必须使用分号分隔。
arcticfox
2019/08/02
8710
Go语言入门——基础语法篇(二)
golang学习笔记之一 - 基础知识与概念
go中字符称为rune,等价于C中的char,可直接与整数转换。rune实际是整型,必需先将其转换为string才能打印出来,否则打印出来的是一个ascii整数
躺平程序员老修
2023/09/05
3090
相关推荐
Go编程基础-基础篇 10
更多 >
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档