每天五分钟Go - 指针
什么是指针
一个指向内存地址的变量,称为指针变量,指针是一个特殊的变量,他的值存储的是另一个值的内存地址
指针变量的声明
var var_name *type
var_name 是指针变量的名称,type是指针变量的类型,*用于指定变量是作为一个指针
var a *int
var b *string
可以使用&
获取一个变量的内存地址
a:=10
b:="abc"
fmt.Println("a的地址:",&a)
fmt.Println("b的地址:",&b)
var pa *int
var pb *string
pa=&a
pb=&b
fmt.Println("a的地址:",pa)
fmt.Println("b的地址:",pb)
fmt.Println("a的值:",*pa) //获取指针地址的所存储的值 使用 *
fmt.Println("b的值:",*pb)
/* 运行结果如下:
a的地址: 0xc000092000
b的地址: 0xc000088030
a的地址: 0xc000092000
b的地址: 0xc000088030
a的值: 10
b的值: abc
*/
声明指针变量时可以直接使用:=
号,例
pe:=&a
pc:=&pb
一个完整的示例
// 准备一个字符串类型
var house = "Malibu Point 10880, 90265"
ptr := &house
// 对字符串取地址, ptr类型为*string
fmt.Printf("ptr 类型:%T\n",ptr)
//打印ptr的地址
fmt.Printf("ptr 地址:%p\n",ptr)
//打印ptr的值
v := *ptr
//取值后的类型
fmt.Printf("ptr 的类型:%T\n",v)
//地址保存的值
fmt.Printf("ptr 的值:%s\n",v)
获取地址的操作符'&' 和 获取值的操作符''是一对互补操作符,&取出地址,根据地址取出地址指向的值
通过指针修改值
func swap(a,b *int) {
t:=*a
*a=*b
*b=t
}
a,b:=1,2
swap(&a,&b)
fmt.Println(a,b)//打印结果为:2,1
使用new函数创建指针
str := new(string)
*str = "ninja"
fmt.Println(*str)
每天五分钟Go - 指针的更多相关文章
- 《sed的流艺术之四》-linux命令五分钟系列之二十四
本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...
- 一门能让你五分钟学会的语言-Brainfuck
看到标题,不出意外的话,你肯定开始骂我了:**标题党,什么编程语言五分钟就能学会? 其实我本来也是不相信的,但是学过了才知道这是真的. 1.Brainfuck 看到这个小标题,不要误会,我没有骂人. ...
- 用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树
这些对老一代的程序员都是老生常谈的东西,没什么新意,对新生代的程序员却充满着魅力.曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托,表达式树这些应用.今天我尝试用简单的方法叙述一下,让大家在五 ...
- [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)
[分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例) 踏雁寻花 发表于 2015-8-23 23:31:28 https://www.itsk.com/thread-35 ...
- JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法)
相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧.不过LZ丑话说前面哦,这篇文章应该能让各位彻底理解标记/清除算法,不过倘若各位猿友不能在五分钟内 ...
- 转帖:用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树
用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树 这些对老一代的程序员都是老生常谈的东西,没什么新意,对新生代的程序员却充满着魅力.曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托 ...
- 《sort帮你排序》-linux命令五分钟系列之二十六
本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...
- 《sed的流艺术之三》-linux命令五分钟系列之二十三
本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...
- 《sed的流艺术之二》-linux命令五分钟系列之二十二
本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...
随机推荐
- 【工具解析】瑞士军刀bettercap2.X解析_第一期_编写HTTP代理注入模块_http(s).proxy.script
/文章作者:Kali_MG1937 CNBLOG博客号:ALDYS4 QQ:3496925334/ 前言 bettercap已经从1.6更新至2.0版本 语言也从ruby改为了go 编写注入模块指定的 ...
- Spring Boot WebFlux-07——WebFlux 中 Redis 实现缓存
第07课:WebFlux 中 Redis 实现缓存 前言 首先,补充下上一篇的内容,RedisTemplate 实现操作 Redis,但操作是同步的,不是 Reactive 的.自然,支持 React ...
- 图文并茂教你学会使用 IntelliJ IDEA 进行远程调试
1. 前言 今天线上出现了个 Bug ,而且比较坑的是涉及到微信相关的东西不能线下调试.传统方式是在代码中各种的日志 log 埋点然后重新部署进行调试,再根据 log 中的信息进行分析.如果你的 lo ...
- Redis:我是如何与客户端进行通信的
江湖上说,天下武功,无坚不摧,唯快不破,这句话简直是为我量身定制. 我是一个Redis服务,最引以为傲的就是我的速度,我的 QPS 能达到10万级别. 在我的手下有数不清的小弟,他们会时不时到我这来存 ...
- char与varchar2字符类型的区别
1.实验: 1)创建一个表test,包含三个字段,数据类型分别是varchar2,number,char create table test(name varchar2(10),id number(1 ...
- 你的电脑适合升级 Win11 吗?「GitHub 热点速览 v.21.26」
作者:HelloGitHub-小鱼干 WhyNotWin11 是个有意思的项目,本以为是从 360 度"抨击" Windows 11 的不好用之处,但它是一个实实在在地从硬件角度告 ...
- 头条面试题:判断一个数是否是happy number(每一位的平方和最终为1)
朋友面试头条二轮了,一轮的题目请看这一篇:头条面试题:求用户在线峰值和持续时间 这次的面试题目是:判断一个数是否是happy number(每一位的平方和最终为1) 知道题目首先要理解题目.所谓hap ...
- MobileNet系列之MobileNet_v2
MobileNet系列之MobileNet_v1 Inception系列之Inception_v1 Inception系列之Batch Normalization Inception系列之Ince ...
- echarts 根据geojson 数据绘制区域图(精确到镇)
步骤:1)先获取区域(县.镇)json数据 :2)使用echarts 绘制地图: 先上一波效果图(昆明市东川区) 一.获取区域json数据 1.下载工具"水经微图", 2.下载东川 ...
- Https:Java代码设置使用证书访问Https
设置证书进行访问或被访问操作 String keyStore = "keyStore的文件路径": String KEY_STORE_PWD = "1234"; ...