golang學習之指標、記憶體配置

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
 1 func pointer_test() { 2     //null 指標,輸出為nil 3     var p *int 4     fmt.Printf("p: %v\n", p) 5     //指向局部變數,變數值初始為0 6     var i int 7     p = &i 8     fmt.Printf("p: %v,%v\n", p, *p) 9     //通過指標修改變數數值10     *p = 811     fmt.Printf("p: %v,%v\n", p, *p)12     //數組的初始化及輸出13     m := [3]int{3, 4, 5}14     fmt.Printf("m:%v--%v,%v,%v\n", m, m[0], m[1], m[2])15     //指標數組的初始化及輸出16     //j, k, l := 3, 4, 517     //x := [3]*int{&j, &k, &l}18     x := [3]*int{&m[0], &m[1], &m[2]}19     fmt.Printf("x:%v,%v,%v\n", x[0], x[1], x[2])20     fmt.Printf("*x:%v,%v,%v\n", *x[0], *x[1], *x[2])21 22     var n [3]*int23     n = x24     fmt.Printf("n:%v,%v,%v\n", n[0], n[1], n[2])25     //指向數組的指標,也即二級指標的使用26     y := []*[3]*int{&x}27     fmt.Printf("y:%v,%v\n", y, y[0])28     fmt.Printf("*y[0]:%v\n", *y[0])29     fmt.Printf("*y[][]:%v,%v,%v\n", *y[0][0], *y[0][1], *y[0][2])30     /*31         *X            ->    v32         [3]X        ->    [v0][v1][v2]33         []X            ->    [v0]...[vi]34         [3]*X        ->    [p0][p1][p2]35                           |   |   |36                           j   k   l37         []*[3]*X    ->    [n0]...[ni]38                           | ... |39                          [p0]->j40                          [p1]->k41                          [p2]->l42     */43 }44 45 type Student struct {46     name  string47     id    int48     score uint49 }50 51 func memery_test() {52     //new分配出來的資料是指標形式53     p := new(Student)54     p.name = "China"55     p.id = 6333356     p.score = 9957     fmt.Println(*p)58     //var定義的變數是數值形式59     var st Student60     st.name = "Chinese"61     st.id = 66633362     st.score = 10063     fmt.Println(st)64     //make分配slice、map和channel的空間,並且返回的不是指標65     var ptr *[]Student66     fmt.Println(ptr)     //ptr == nil67     ptr = new([]Student) //指向一個空的slice68     fmt.Println(ptr)69     *ptr = make([]Student, 3, 100)70     fmt.Println(ptr)71     stu := []Student{{"China", 3333, 66}, {"Chinese", 4444, 77}, {"Chince", 5555, 88}}72     fmt.Println(stu)73 }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.