package main
import "fmt"
//指针
//go语言的指针是非常容易学习的,比c中容易很多,他可以更简单的执行一些任务
//与变量类型,使用前需要定义
func test18_1() {
var a int
a = 10
b := 10
fmt.Println(a)
fmt.Println(&a,&b)
//使用&符号可以打印变量a的内存地址
//申明一个普通的变量
var c int
c = 30
//申明一个指针变量,一个指针变量的值就是他所指向的变量的内存的地址
var p *int
p = &c
//%x是表示16进制
fmt.Printf("c的内存地址为%x\n",&c)
fmt.Printf("p的值为%x\n",p)
fmt.Printf("p的内存地址为%x\n",&p)
//获取指针指向的内存地址的值
fmt.Printf("p的内存地址指向的值%d\n",*p)
//通过指针修改变量的值的练习
var num int
num = 10
fmt.Println(num)
fmt.Println(&num)
var ptr *int
ptr = &num
*ptr = 20
fmt.Println(num)
var ptr2 *int
//如果一个指针没有指向任何变量,则他的值为nil
fmt.Println(ptr2)
//<nil>
}
func main() {
test18_1()
}
原文:https://www.cnblogs.com/bainianminguo/p/10854162.html