在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
运行代码观察现象: 1 package main 2 3 import "fmt" 4 5 func change(num *int32) { 6 *num += 100 7 } 8 9 func main() { 10 var a int32 11 a = 100 12 fmt.Printf("a的值为:%d\n", a) 13 //用%p 来输出内存地址 用&符号取a的地址 这一点和C语言一样 14 fmt.Printf("a的地址为%p\n", &a) 15 16 //这个p是引用类型 其实就是一个指针 和C语言里面的指针异曲同工 17 //使用方式和C语言一模一样 18 var p *int32 19 p = &a 20 fmt.Printf("p所保存的地址为%p\n", p) 21 fmt.Printf("p所指的变量的值为为%d\n", *p) 22 23 *p = 150 24 fmt.Printf("指针修改后 p所指的变量的值为为%d\n", *p) 25 fmt.Printf("指针修改后 a的值为:%d\n", a) 26 27 28 //%T 表示输出其类型 29 fmt.Printf("p的类型为%T\n", p) 30 fmt.Printf("a的类型为%T\n", a) 31 32 //通过指针和函数修改变量的值 33 change(p) 34 fmt.Printf("指针函数修改后 p所指的变量的值为为%d\n", *p) 35 fmt.Printf("指针函数修改后 a的值为:%d\n", a) 36 37 //修改数组就传数组的指针 同理 38 //注意 切片是引用类型,切片也是指针只是是一个特殊的指针 39 40 } 输出结果: make和new的区别:
|
请发表评论