数组

数组

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


数组

出现的原因

比如在定义整型数据时,需要定义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开始,到元素个数减一结束,如果数组下标越界,会操作非法内存,程序可能会出错,调试会很痛苦。

数组的简单介绍结束。

你可能感兴趣的:(数组)