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

66_Go基础_1_33指针

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 1 package main
 2 
 3 import "fmt"
 4 
 5 func main() {
 6     /*
 7         指针:pointer
 8             存储了另一个变量的内存地址的变量。
 9 
10     */
11 
12     // 1.定义一个int类型的变量
13     a := 10
14     fmt.Println("a的数值是:", a)     // 10
15     fmt.Printf("%T\n", a)        // int
16     fmt.Printf("a的地址是:%p\n", &a) //0xc0000140a8
17 
18     // 2.创建一个指针变量,用于存储变量a的地址
19     var p1 *int
20     fmt.Println(p1) // <nil>,空指针
21     p1 = &a
22     fmt.Println("p1的数值:", p1)       // p1的数值: 0xc0000140a8
23     fmt.Printf("p1自己的地址:%p\n", &p1) // p1自己的地址:0xc000006030
24     fmt.Println("p1的数值,是a的地址,该地址存储的数据:", *p1)
25     // p1的数值,是a的地址,该地址存储的数据: 10
26 
27     // 3.操作变量,更改数值 ,并不会改变地址
28     a = 100
29     fmt.Println(a)
30     fmt.Printf("%p\n", &a) // 0xc0000140a8
31 
32     // 4.通过指针,改变变量的数值
33     *p1 = 200
34     fmt.Println(a) // 200
35 
36     // 5.指针的指针
37     var p2 **int
38     fmt.Println(p2)                     // <nil>
39     p2 = &p1                            //
40     fmt.Printf("%T,%T,%T\n", a, p1, p2) // int, *int, **int
41     fmt.Println("p2的数值:", p2)           // p2的数值: 0xc000006030  p1的地址
42     fmt.Printf("p2自己的地址:%p\n", &p2)     // p2自己的地址:0xc000006038
43     fmt.Println("p2中存储的地址,对应的数值,就是p1的地址,对应的数据:", *p2)
44     // p2中存储的地址,对应的数值,就是p1的地址,对应的数据: 0xc0000140a8
45     fmt.Println("p2中存储的地址,对应的数值,再获取对应的数值:", **p2)
46     // p2中存储的地址,对应的数值,再获取对应的数值: 200
47 
48 }

 


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
LRU算法的GO语言实现发布时间:2022-07-10
下一篇:
各种奇淫技巧集合 开源的网盘下载工具BaiduPCS-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