zoukankan      html  css  js  c++  java
  • 数组

    数组的定义和使用

    /*
     数组:一组具有相同类型的数据在内存中有序的存储的数据集合
    */

    /* 数组的定义 */
    //var + 变量名 + 数据类型 =值
    //var 数组名 [元素个数]数据类型={值1,值2,值3...}
    //数组的声明 默认值0
    //var arr [10]int

    //数组的初始化
    var arr [10]int = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    fmt.Println(arr)

    //通过具体元素为数组赋值
    //数组[下标] = 值
    //arr[0] = 123

    /*
    计算数组元素的个数
    */
    var array [10]int = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

    //计算数组的个数
    count := len(array)

    //打印数组元素的值
    //方法1
    for i := 0; i < count; i++ {
    //获取数组元素的值
    fmt.Println(arr[i])
    }

    //方法2 range
    //index 下标 value 值
    // for 下标,值 :=range 数据集合
    for index,value:=range array{
    fmt.Println("下标:",index,"值:",value)
    }

    数组内存存储

    //var arr [10]int=[10]int{1,2,3,4,5,6,7,8,9,10}

    //自动推导类型创建数组
    arr := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

    //fmt.Printf("%T ",arr)//[10]int

    for i := 0; i < len(arr); i++ {
    //数组元素对应的内存地址c
    fmt.Println(&arr[i])
    }

    数组的赋值

    arr := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    var arr1 [10]int

    //数组名 arr
    //使用一个数组为另外一个数组赋值 前提是元素个数相同 数据类型相同
    //arr1 = arr

    for i := 0; i < len(arr1); i++ {
    //使用数组元素赋值
    arr1[i] = arr[i]
    }

    //arr1[-1] = 123//err 数组下标越界 不能小于0
    //arr1[5] = 123 //err 数组下标越界   不能大于元素个数-1

    fmt.Println(arr1)

    数组的逆置

    //定义数组
    arr:=[10]int{1,2,3,4,5,6,7,8,9,10}

    //定义最小下标
    j:=0
    //定义最大下标
    j:=len(arr)-1

    for i<j{
    //交换数据
    arr[i],arr[j] = arr[j],arr[i]
    //改变下标
    i++
    j--
    }

     

    数组作为函数参数

    //定义数组
    arr := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    //函数调用
    test1(arr)

    //函数
    func test1(arr [10]int) {
    arr[0] = 123
    fmt.Println(arr)
    }

    随机数

    rand.Seed(time.Now().UnixNano()) //获取1970年到现在的时间戳

    reslut :=rand.Intn(100) //获取随机数 0-99

    二维数组

    //定义一维数组
    //var 数组名 [元素个数]数据类型

    //定义二维数组
    //var 数组名 [行个数][列个数]数据类型

    //数组声明 默认值为0
    //var arr [3][4]int

    //定义二维数组并赋值
    var arr [3][4]int = [3][4]int{{1, 2, 3, 4}, {2, 3, 4, 5}, {3, 4, 5, 6}}

    //len(二维数组名) 计算结果为二维数组行个数
    fmt.Println(len(arr)) //3
    //len(二维数组名[下标]) 计算结果为二维数组列个数
    fmt.Println(len(arr[0])) //4

    //自动推导类型创建二维数组
    arr := [3][4]int{{1, 2, 3, 4}, {2, 3, 4}, {6, 6, 6}}

    //循环遍历数组
    for i := 0; i < len(arr); i++ {
    for j := 0; j < len(arr[0]); j++ {
    fmt.Printf("%d ", arr[i][j])
    }
    fmt.Println()
    }

     

  • 相关阅读:
    Qt中实现单例模式(SingleTon)
    毕设开发手记(二)
    Qt中由表中单元格的QModelIndex获取Global Pos的正确方法
    Qt的槽可以使用默认参数
    C#结构的了解
    dos命令集江南技术联盟
    C#中的abstract与virtual的用法
    [转]六种删除数据库重复行的方法
    PL/SQL的TO_CHAR()与TO_DATE()
    索引索引索引(转)
  • 原文地址:https://www.cnblogs.com/muxinanan/p/14502042.html
Copyright © 2011-2022 走看看