微信号:Golangweb

介绍:欢迎来到 Go语言社区 社区网址:www.golangweb.com APP网址:app.golangweb.com 社区非公司性质,完全个人爱好建立;做的不好的地方大家见谅.

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

2017-12-06 06:27 厚土火焰山

菅俊菠,70后IT人,程序员到产品经理/项目经理,先后涉猎教育、企管、煤矿、电商等多个领域的系统开发和团队管理工作。擅长业务分析、团队管理,关注前沿技术,目前注意力在golang、kotlin。微信号:hotu2010

共 1095 字,阅读需 3 分钟

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

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语言社区 更多文章 Golang使用redis protocol实现pubsub通信 Golang泛型编程初体验 Golang Cookie 简介 Golang处理JSON(二)--- 解码 Golang处理JSON(一)--- 编码
猜您喜欢 基础篇章:关于 React Native 之 Touchable 系列组件的讲解 腾讯TMQ在线沙龙|android内存性能测试 Linux写时复制原理 为小程序而生的小(jiao)手架 年终课程盘点(三):你关于融资的所有疑问,他们都回答了