Go 语言指针

Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务。

接下来让我们来一步步学习 Go 语言指针。

我们都知道,变量是一种使用方便的占位符,用于引用计算机内存地址。

Go 语言的取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址。

以下实例演示了变量在内存中地址:

package mainimport "fmt"func main() {var a int = 10   fmt.Printf("变量的地址: %x\n", &a  )
}

执行以上代码输出结果为:

变量的地址: 20818a220

现在我们已经了解了什么是内存地址和如何去反问它。接下来我们将具体介绍指针。


什么是指针

一个指针变量可以指向任何一个值的内存地址它指向那个值的内存地址。

类似于变量和常量,在使用指针前你需要声明指针。指针声明格式如下:

var var_name *var-type

var-type 为指针类型,var_name 为指针变量名,* 号用于指定变量是作为一个指针。以下是有效的指针声明:

var ip *int        /* 指向整型*/
var fp *float32    /* 指向浮点型 */

本例中这是一个指向 int 和 float32 的指针。


如何使用指针

指针使用流程:

  • 定义指针变量。
  • 为指针变量赋值。
  • 访问指针变量中指向地址的值。

在指针类型前面加上 * 号(前缀)来获取指针所指向的内容。

package mainimport "fmt"func main() {var a int= 20   /* 声明实际变量 */var ip *int        /* 声明指针变量 */ip = &a  /* 指针变量的存储地址 */fmt.Printf("a 变量的地址是: %x\n", &a  )/* 指针变量的存储地址 */fmt.Printf("ip 变量的存储地址: %x\n", ip )/* 使用指针访问值 */fmt.Printf("*ip 变量的值: %d\n", *ip )
}

以上实例执行输出结果为:

a 变量的地址是: 20818a220
ip 变量的存储地址: 20818a220
*ip 变量的值: 20

Go 空指针

当一个指针被定义后没有分配到任何变量时,它的值为 nil。

nil 指针也称为空指针。

nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。

一个指针变量通常缩写为 ptr。

查看以下实例:

package mainimport "fmt"func main() {var  ptr *intfmt.Printf("ptr 的值为 : %x\n", ptr  )
}

以上实例输出结果为:

ptr 的值为 : 0

空指针判断:

if(ptr != nil)     /* ptr 不是空指针 */
if(ptr == nil)    /* ptr 是空指针 */

Go指针更多内容

接下来我们将为大家介绍Go语言中更多的指针应用:

内容描述
Go 指针数组你可以定义一个指针数组来存储地址
Go 指向指针的指针Go 支持指向指针的指针
Go 像函数传递指针参数通过引用或地址传参,在函数调用时可以改变其值

转载于:https://www.cnblogs.com/navysummer/p/8458568.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486808.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 上传大文件400,PHP fastcgi模式上传大文件(大约有300多K)报错

最近在项目中中上传图片时,大约有300多K,结果报了个服务器错误,以前从未遇到过,错误的内容如下:mod_fcgid: HTTP request length 132296 (so far) exceeds MaxRequestLen (131072)查了下资料,发现fastcgi默…

从信息传递的视角看因果关系

来源:混沌巡洋舰因果推断让大数据更有温度在六种看待因果关系的视角(机制,反事实,干预,过程,信息传递及概率因果)中,信息传递是潜在应用最广泛的一种。当我们想弄清楚是什么导致某件…

springboot入门_模板

springboot中已经不推荐使用jsp,而是推荐使用模板,如freemarker,thymeleaf等,本文记录在sprigboot中使用模板。 创建一个maven的springboot工程, freemarker,要使用freemarker模板需引入所需要的jar&#x…

php教程目录,php基础入门篇-文件和目录操作_PHP教程

一篇关于php 入门的朋友参考的关于文件和目录的各种操作函数与实例应用,有需要的朋友可以简单的参考一下。本章可以算是上一章的延续,介绍了除文件实际内容之外的附加信息,包括文件的大小、目录、访问权限等。文件系统中的某些函数只在服务器…

姚期智:当科学家发现自己喜欢探索的方向,整个世界会像打游戏一样愉悦

来源:上观新闻 作者:舒抒发现一个大定理的喜悦程度,和小时候吃第一口冰激凌、第一块巧克力是一样的。“走在滨江大道,能闻到江风吹来的桂花香。”夏秋交替之际来到上海,江风、江景和丹桂飘香,让姚期智在演讲…

java 佳博打印机,佳博蓝牙打印的java 连接

适用于gp-3120tu机型通过蓝牙协议与android app的对接, 用的是TSC指令.package com.freestyle.demo;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Handler;import android.os.HandlerThread;import…

imageloader图片基本加载

初始化&#xff1a; 配置初始化&#xff1a; <application android:name".Jiaimgapp"使用&#xff1a; http://blog.csdn.net/vipzjyno1/article/details/23206387 http://blog.csdn.net/vipzjyno1/article/details/23206387 http://blog.csdn.net/hudashi/ar…

刚获得物理诺奖的数学家:现实是对完美数学真理的扭曲反应,人脑是最终量子计算机!...

来源&#xff1a; 数学竞赛的那些事儿在20世纪中期&#xff0c;数学探究自然模式的能力被大大地增强了&#xff0c;如果那些远古的几何学者们看到这一切&#xff0c;必将大为惊愕甚至迷惑不解&#xff0c;在极为宏观的尺度上&#xff0c;天文学家们以整个银河系为基本单位&…

Java注解中produces啥意思,注解@RequestMapping中的produces,consumes属性

今天在项目中看到了RequestMapping中有两个属性&#xff0c;consumes和produces&#xff0c;于是就想弄清楚这两个属性是干什么的。一、produces指定返回值类型&#xff0c;并且可以设置返回值类型和返回值的字符编码&#xff1b;demo/**属性produces"application/json&qu…

如何实时查看linux下的日志

如何实时查看linux下的日志 Unix/linux&#xff08;88&#xff09; cat /var/log/*.log 如果日志在更新&#xff0c;如何实时查看 tail -f /var/log/messages 还可以使用 watch -d -n 1 cat /var/log/messages -d表示高亮不同的地方&#xff0c;-n表示多少秒刷新一次。 该指令&…

2020年世界机器人报告

来源&#xff1a;国际机器人联合会最新的《2020年世界机器人报告》(The new World Robotics 2020 Industrial Robots)显示&#xff0c;在世界各地的工厂中运行的270万台工业机器人&#xff0c;创下纪录&#xff0c;增长了12&#xff05;。新机器人的销量保持较高水平&#xff0…

$.getJSON()

$.getJSON(order.php,{op:detail,order_id:id},function(data){} ) 等价于 $.ajax({url: url,data: data,success: callback,dataType: json }); 转载于:https://www.cnblogs.com/xiaobiaomei/p/8464632.html

2020年诺贝尔化学奖得主自述:基因编辑技术将把我们带向何方?

来源&#xff1a;赛先生作者 ┃ Jennifer Doudna &#xff08;美国加州大学伯克利分校化学与分子和细胞生物学系教授&#xff09;翻译 ┃ 马宗敏制版编辑 | 栗子北京时间2020年10月7日下午&#xff0c;诺贝尔奖化学奖授予了基因编辑领域的两位先驱。加州大学伯克利分校教授詹妮…

使用travelbook架设自己的实时位置共享服务

travelbook 是一款开源的安卓APP&#xff0c;它能以低功耗提供实时位置共享&#xff0c;它包含功能如下&#xff1a; 好友之间分享实时位置&#xff1b;记录行程轨迹&#xff1b;标记收藏地点&#xff1b; 这款软件的主要解决的问题包括&#xff1a; 场景1&#xff1a;查看老…

matlab怎么保存为透明图,matlab 透明图像 fig 保存

在网上发现如下codes&#xff0c;可以生成透明图形。%If you ever wondered how to get a matlab figure transparent(particularly usefull when you export it to formats that featuretransparency, like eps, gif, png, etc.), here is how you do it:% you created a figu…

揭秘:1.2亿美元光刻机内部视频曝光,像科幻片一样震撼!

来源&#xff1a;直观学机械 &#xff0c;转今日半导体荷兰阿斯麦&#xff08;ASML&#xff09;公司的光刻机作为世界上最贵最精密的仪器&#xff0c;相信大家都有耳闻&#xff0c;它是加工芯片的设备。其最先进的EUV&#xff08;极紫外光&#xff09;光刻机已经能够制造7nm以下…

树状数组-神奇的二进制

树状数组是解决快速更新以及统计数组某段区间总和&#xff0c;设一个数组A[1-N],需要计算A[M-K]的总和&#xff0c;暴力解法需要O(K-M)&#xff0c;如果我们求出sum&#xff08;1-K&#xff09;和sum&#xff08;1-M&#xff09;,那么答案就是sum(1-M)-sum(1-K); 那么如何快速求…

通往诺贝尔奖之路:盘点10个著名的科学家族

文章 | COLIN HUNTER来源 | 科研大匠科学家们常常将最亲近的合作者当做自己的亲人看待&#xff0c;而对于有些科学家而言&#xff0c;他们的合作者就是他们的家人。无论是由于遗传因素、教育因素还是二者的综合影响&#xff0c;那些开创性的物理学研究往往是一项家庭事业。从杰…

apache php 脚本,PHP脚本不在Apache服务器上执行

问题描述我刚刚重新安装了Apache和PHP5但是当我访问我的doc root时它只下载了一个”download”文件。当我尝试documentroot /index.php时&#xff0c;它只是下载PHP文件。我安装了PHP&#xff0c;但Apache似乎不想执行它。人们建议在我的httpd.conf中添加’Load Module’线&…

20165212 预备作业3 Linux安装及学习

20165212 预备作业3Linux安装及学习 Linux虚拟机的安装过程 我像大部分同学一样&#xff0c;通过助教学姐给的Ubuntu下载地址下载映像文件、VB&#xff0c;但是屡次出现问题&#xff0c;不停的闪出一下错误提示窗口&#xff1a;在像同学求助无果之后我使用VM、Ubuntu安装了Linu…