数组指针&指针数组

小兵 · · 1096 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

package main

import "fmt"

func main() {
    /*
        数组指针: 首先是一个指针,一个数组的地址
            存储的是数组的地址
             *[4]int

        指针数组:
             首先是一个数组,存储的数据类型是指针
             [4]*type


             *[5]float64    指针,一个存储了5个浮点型数据的数组的指针
             *[3]string     指针,一个存储了3个字符串
             [3]*string     数组,存储了3个字符串的指针地址
             [5]*float64    数组,存储了5个浮点型的数组地址
             *[5]*float64   指针,一个数组的指针,数组中存储5个float64的数据的地址
             *[3]*string    指针,一个数组指针,存储了3个字符串地址
             **[4]sting     指针,存储了4个字符串数据的数组的指针的指针
             **[4]*string   指针,存储了4个字符串的数据的地址的数组,的指针的指针
             

    */

    // 1.创建一个普通的数组
    arr1 := [4]int{1, 2, 3, 4}
    fmt.Println(arr1)

    //2. 创建一个指针,存储该数组的地址====> 数组指针
    var p1 *[4]int
    p1 = &arr1
    fmt.Println(p1)
    fmt.Printf("%p\n", p1)
    //3. 根据数组指针,操作数组
    (*p1)[0] = 100 // 简写 p1[0]=100
    fmt.Println(arr1)

    // 4. 指针数组
    a := 1
    b := 2
    c := 3
    d := 4
    arr2 := [4]int{a, b, c, d}
    arr3 := [4]*int{&a, &b, &c, &d}
    fmt.Println(arr2)
    fmt.Println(arr3)
    arr2[0] = 200
    fmt.Println(a)
    *arr3[0] = 300
    for i := 0; i < len(arr3); i++ {
        fmt.Println(*arr3[i])
    }
    fmt.Println(a)
}

有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:小兵

查看原文:数组指针&指针数组

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1096 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传