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() }