博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go语言学习笔记(6)——指针
阅读量:5228 次
发布时间:2019-06-14

本文共 800 字,大约阅读时间需要 2 分钟。

指  针

指针 存储另一个变量的内存地址的变量; Go语言的取地址符号也是&

1. 声明指针: var needle_name *type

      var b int = 10

      var a *int = &b    // 整型指针a,指向变量b(即存储b的内存地址)

   使用 *a 获得其所指向的变量b的值10, 可以通过指针改变变量的值: *a++, 然后b的值就变成了11.

2. 结构体的定义和使用:

type name int8 // 结构体中成员变量的类型可以在结构体定义外指定type first struct { // 这里的结构体名为first    a int    b bool     // bool类型的变量默认值为false    name } var a = first{1, false, 2}   // 定义first结构体类型的变量a a.a = 0 var b *first = &a             //定义first类型的指针b        

    注意: 此时b.a和(*b).a都可以获取a.a的值 0    !

    而&a的打印结果为: &{0 false 2}        //就是没有逗号comma分隔符!!!  

 

3. 当一个指针被声明但却没有为其赋值时,它就是一个空指针,值为 nil; 一个指针变量通常缩写为 ptr

 

4. 指针作为参数传递: 因为指针存的是一个变量的地址,所以使用实参指针和形参指针都可以改变变量的值。 虽然可以将数组的地址传递给一个函数的参数(指针数组)并对其进行修改,但这并不是实现这一目标的惯用方法。 我们有切片!!!

 

5. 指针的指针: var ptr **int   // 则指针 ptr 可以存储另一个指针的地址 (对应 ptr)

转载于:https://www.cnblogs.com/skzxc/p/11187468.html

你可能感兴趣的文章
uva 10137 The trip
查看>>
Count Numbers
查看>>
编写高质量代码改善C#程序的157个建议——建议110:用类来代替enum
查看>>
网卡bond技术
查看>>
UITabbarController的UITabbarItem(例:"我的")点击时,判断是否登录
查看>>
UNIX基础知识之输入和输出
查看>>
【洛谷 P1666】 前缀单词 (Trie)
查看>>
数据库锁机制及乐观锁,悲观锁的并发控制
查看>>
图像处理中双线性插值
查看>>
RobHess的SIFT代码解析之RANSAC
查看>>
03 线程池
查看>>
201771010125王瑜《面向对象程序设计(Java)》第十三周学习总结
查看>>
手机验证码执行流程
查看>>
python 基础 ----- 变量
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
:hover 鼠标同时触发两个元素变化
查看>>
go语言学习十三 - 相等性
查看>>
Idea 提交代码到码云(提交到github也大同小异)
查看>>
c#连接excel2007未安装ISAM解决
查看>>