厚土Go学习笔记 | 16. go语言有指针 没有指针运算

指针内其实就是保存了一个变量地址。

var p *int

这行代码声明了一个 int 类型的指针 p

i := 42
p = &i

& 符号是取地址符,&i 代表的是变量 i 的内存地址。

fmt.Println(*p)      //打印指针p的值
*p = 21                //修改指针p的值

通过指针控制变量的值的变化。这也就是通常所说的“间接引用”或“非直接引用”。

看一个代码实例

package main

import (
    "fmt"
)

func main() {
    i, j := 45, 1973
    p := &i             //p保存的是i的地址
    fmt.Println(*p)     //*p是指针,通过这个指针去读取i
    *p = 27             //赋值27给指针*p
    fmt.Println(i)      //打印i

    p = &j              //p保存的地址换成了j的地址
    *p = *p / 37        //用指针带入j做除法
    fmt.Println(j)      //打印j

}

运行结果

45
27
53

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2017-12-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏拭心的安卓进阶之路

JavaScript 的闭包用于什么场景

本文翻译自 MDN ( Mozilla Developer Network ): 原文地址:MDN 译文地址:shixinzhang 的博客 词法作用域 考虑如...

23880
来自专栏开心的学习之路

JavaScript概览

近日的项目需要用JavaScript完成,于是决定通读《JavaScript高级程序设计第三版》,书是2012年的,比较老了,但是可以用来快速了解JavaScr...

30240
来自专栏互联网杂技

JS中Null与Undefined的区别

Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。 Null类型也只有一个值,即null。n...

33340
来自专栏小灰灰

SPI框架实现之旅四:使用测试

SPI框架实现之旅四:使用测试 前面三篇主要是介绍如何设计的,如何实现的,这一篇,则主要集中在如何使用。实现得再好,如果不好用,也白搭 本篇介绍几个简单的使用...

21880
来自专栏地方网络工作室的专栏

GO语言学习笔记(一)一些基础常识以及实现生成随机密码小程序

GO语言学习笔记(一)一些基础常识以及实现生成随机密码小程序 之前用 nodejs 和 shell 分别实现过生成随机密码的小程序。最近,准备入门一下 gola...

22060
来自专栏技术小站

SpringMVC:数据绑定入门(-)

1.数据类型,可以绑定基本数据类型,如int age,或者包装类型如:Integer age;

32720
来自专栏TungHsu

这或许是对小白最友好的python入门了吧——10,元组

元组和列表差不多,但是和列表又不一样,除了长得不一样外,还有一个很大的不同就是元组的元素不能修改。 元组是这样写的(以矩形的长宽为例): rectangle =...

29240
来自专栏架构师之路

perl语言十分钟入门【零基础可入】

零基础,perl语言,10分钟入门 1.Hello,World #!/usr/bin/perl -w print ("hello,world!\n"); #pr...

56070
来自专栏马涛涛的专栏

JS题目总结:原型链/new/json/MVC/Promise

解读: 上图中,Object,Function,Array,Boolean都是构造函数

18320
来自专栏HTML5学堂

JavaScript中的this详解

HTML5学堂:this属于JS的底层知识,了解this之后,能够实现一些基本的功能,但是感觉最重要的是,this是面向对象必不可少的组成部分,如果希望能够逐渐...

28940

扫码关注云+社区

领取腾讯云代金券