Go- 指针
版权声明: 本文为 InfoQ 作者【HelloBug】的原创文章。
原文链接:【http://xie.infoq.cn/article/552202f5755e2b72577eaf726】。
本文遵守【CC BY-NC-ND】协议,转载请保留原文出处及本版权声明。
Go 学习笔记,学习内容《Go入门指南》
主要介绍以下内容:
指针的声明和使用
不能获得常量的指针
空指针的使用
代码示例可以直接运行
package main
import (
"fmt"
)
func main() {
var p1 *int // 声明一个指针
var n1 int = 5
p1 = &n1 // 指针赋值
fmt.Printf("%p\n", p1) // 输出:0xc00000a098 输出指针
fmt.Printf("%d\n", *p1) // 输出:5 输出指针指向的值
/*
不能获得常量的地址
*/
//const i int = 5
//p1 = &i // 编译错误: cannot take the address of i
//p2 := &10 // 编译错误: cannot take the address of 10
//p3 := p1++ // 编译错误:syntax error: unexpected ++ at end of statement
//p4 := *p1++ // 编译错误:syntax error: unexpected ++ at end of statement
/*
对于空指针的使用会导致程序崩溃
*/
var p5 *int = nil
*p5 = 0 // 编译错误:panic: runtime error: invalid memory address or nil pointer dereference
}
版权声明: 本文为 InfoQ 作者【HelloBug】的原创文章。
原文链接:【http://xie.infoq.cn/article/552202f5755e2b72577eaf726】。
本文遵守【CC BY-NC-ND】协议,转载请保留原文出处及本版权声明。
还未添加个人签名 2018.09.20 加入
还未添加个人简介
促进软件开发及相关领域知识与创新的传播
评论