• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go语言学习笔记十四--一文搞懂Go语言指针

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

运行代码观察现象:

 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 }
输出结果:
a的值为:100 a的地址为0xc000092000 p所保存的地址为0xc000092000 p所指的变量的值为为100 指针修改后 p所指的变量的值为为150 指针修改后 a的值为:150 p的类型为*int32 a的类型为int32 指针函数修改后 p所指的变量的值为为250 指针函数修改后 a的值为:250

make和new的区别:

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
六. Go并发编程--WaitGroup发布时间:2022-07-10
下一篇:
Go测试开发就用这三板斧发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap