数组

数组

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


数组

出现的原因

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

数组的简单介绍结束。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 4,085评论 2 13
  • 第四天 数组【悟空教程】 第04天 Java基础 第1章数组 1.1数组概念 软件的基本功能是处理数据,而在处理数...
    Java帮帮阅读 1,639评论 0 9
  • 七、数组 在C语言中,数组属于构造数据类型。数组根据元素的类型不同,数组又可以分为 数值数组 、字符数组 、指针数...
    坚持到底v2阅读 871评论 0 2
  • 谨记 每个人心中都有一片海,自己不扬帆,没人帮您启航,久了就是一片死海。人生,就是一场自己与自己的较量:让积极打败...
    长风留言阅读 8,059评论 6 10
  • 一、听课感受 听完本节《内修高手“跃迁”心法 (解读第五章)》,书写您最大的三点收获。 (一)开放而专注 永澄老师...
    多做减法阅读 264评论 0 0