数组

作者: 风情云 | 来源:发表于2020-03-08 23:29 被阅读0次

    数组

    百度百科:所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。
    按我的话来说,就是一堆同类型元素的集合体,按照连续的存储方式在内存存储。


    数组

    出现的原因

    比如在定义整型数据时,需要定义n个整型变量,那就要写n个定义的语句,这样的工作是十分繁琐且无意义的,就需要数组的出现,只要定义一条语句就可以。


    数组出现原因

    一维数组定义与使用

      //数据类型 数组名[元素个数]
        int array[10];   //定义一个整形数组,有10个元素
    

    赋值操作

        int arra[5] = {1,2,3,4,5};  //定义时赋值
        int arr[5] = {1,2,3};       //可以赋值部分,剩余的值均为0
        int a[5] = {0};             //直接赋值为0
        int b[] = {1,2,3,4,5};      //定义后面紧跟赋值操作时,可以省略赋值操作
        int array[5];
        array[0] = 1;               //通过数组下标赋值
        array[1] = 2;
        array[2] = 3;
        array[3] = 4;
        array[4] = 5;
    

    获取数组个数

        int b[] = {1,2,3,4,5};
        int size = sizeof(b)/sizeof(b[0]);       //获取数组大小
    
    过程详解

    注意下标从0开始,因为机器的底层都是二进制,就0和1,所以下标从0开始。到元素个数-1结束。要避免数组越界,不然会操作非法内存,出现段错误。

    二维数组

    二维数组由多个一维数组组成,使用方法与一维数组无异。

        //数据类型 数组名[元素个数][元素个数]
        int array[2][3];   //定义一个整形二维数组,有2*3个元素,也可以理解成两行三列
    

    在定义时,后面没有赋值操作,两个[ ]内元素个数不可省略,不然编译器不知道分配多大内存,报错。
    赋值操作:与一维数组差不多

        int array[][3] = {1,2,3,4};       //系统自动计算为2*3的数组,后面的数据补为0
        int arra[2][3] = {0};
        int arr[2][3] = {{1,2,3},{4,5,6}};//完全赋值
        int ar[2][3] = {1,2,3,4,5,6};     //和上面的方面一样,系统会自动将数据分开
        
        int a[2][3];
        a[0][0] = 1;                      //下标赋值法
    
    过程详解

    获取数组元素个数

        int r = sizeof(a)/sizeof(a[0]);       //获取行
        int j = sizeof(a[0])/sizeof(a[0][0]); //获取列
    

    数组大小 = 元素类型的字节数*元素个数

    数组本质

    数组就是多个连续的同种类型的内存块,本质还是一个数据。二维数组并不是数据在内存中分行与列,只是让我们感性认知,取二维数组这个名字。本质就是多个一维数组连在一起,组成二维数组。

    数组本质

    注意事项

    使用数组谨记下标从0开始,到元素个数减一结束,如果数组下标越界,会操作非法内存,程序可能会出错,调试会很痛苦。

    数组的简单介绍结束。

    相关文章

      网友评论

        本文标题:数组

        本文链接:https://www.haomeiwen.com/subject/afbsdhtx.html