【C语言】-一维数组

作者: 真一 | 来源:发表于2015-11-27 22:49 被阅读140次

    数组:

    数组是一系列相同类型的有序数据的集合,数组中的每一个元素都是同一个数据类型,所有元素共用一个名字,用下标来区别数组中的每一个元素。

    C语言中,数组属于构造数据类型。一个数组中含有多个数组元素,每一个数组元素都是一个普通变量。根据数组中存放的数据类型,数组可分为:数值数组、字符数组、指针数组、结构体数组等。

    一维数组:

    数组中每个元素只带有一个下标时,称为一维数组。

    一维数组是最基本的数据结构。
    对数组中的每一个数据的称呼,可以是数组元素、数组分量,或者下标分量。
    每个数组元素由所在的位置序号来区分,位置序号称为数组元素的下标。每一个数组元素都是一个相对独立的变量,其实,对数组的操作,往往要转换成对其中数据元素的操作。

    一维数组的定义方式:

    类型标识符 数组名[元素个数];
    int arr[7];
    定义了一个名为arr的整型数组,数组中有7个元素。

    数组元素的有序性:

    并不是说数组中各个元素值的大小有序,而是同一个数组的数组元素在内存中的存储空间是连续的,按照数组元素的下标从小到大依次存放。其中,数组名代表该数组的首地址,例如上例中,arr是数组名,代表数组在内存中的首地址,因为数组元素依次存放,所以如果知道首地址,可以推断出数组中每个元素的地址。

    数组元素首地址 = 数组首地址 + 元素下标 * sizeof(数组类型)

    arr[3] = 2000 + 3 * 4 = 2012

    说明:
    • 类型标识符说明数组元素的类型,可以是int、long、char、float、double等。
    • 数组名的命名规则与变量的命名规则相同,遵循标识符的命名规则。
    • 数组元素的下标从0开始,所以arr[0]为第一个元素,arr[6]为该数组的最后一个元素。
    • “元素个数”即数组长度,只能是一个整型表达式,可以是符号常量。
    • C语言不允许使用变量定义长度不定的动态数组,所以“元素个数”中不能包括变量。
    • 定义数组时,数组元素两边一定是方括号,写成括号和花括号是不合法的。
    • 和变量一样,可以在一个类型声明中声明多个数组。如:double a[6],b[7];也可以变量和数组进行混合声明。如:int n,a[10];

    一维数组元素的引用:

    定义了数组之后,才可以引用其中的元素。
    C语言规定:只能引用数组中的元素,而不能利用数组名来整体引用一个数组。

    对数组元素的引用形式数组名和方括号中的下标组成,即:数组名[下标]。

    下标:数组元素在数组中的顺序号,用于区分每个数组元素,指明要操作哪个数组元素,整型的任何表达式都可以作为数组下标出现。
    下标的范围为:从0到元素个数-1。
    程序中,数组的各个元素和普通变量一样,可以参与各种C语言操作,如:被赋值、参与计算、输入输出等。
    根据数组的有序性,对于数组元素的处理,往往使用循环来实现,尤其是计数循环for语句更适合于实现对数组的操作:将循环控制变量作为数组下标依次对数组元素进行存取。

    一维数组的初始化:

    C语言允许在定义数组时为数组赋初值,称之为数组的初始化。

    一维数组初始化的形式:

    类型标识符 数组名[元素个数] = {初值列表};

    说明:
    • 初值列表是一个用逗号分隔开的数组元素初值表,这些值都是常量的形式。
    • 初值表中常量的类型必须与类型说明符一致。
    • 初始化的顺序为:按照初值表中值的顺序依次存入数组的各个元素中。
    对一维数组进行初始化有以下几种方法:
    • 在定义数组时,对数组中的全部元素赋初值。
    • 在定义数组时,对部分数组元素赋初值。
    • 对全部数组元素赋初值时,可省略数组长度,系统自动确定。

    通常情况下,未初始化的数组只是在内存中分配了指定大小的存储空间,但每个存储空间中的初值是不可知的。
    未初始化的数组,初值是没有意义的值。
    如果指定的初值元素个数比数组元素个数少,剩下的全部被赋为0。
    数组可以初始化,也可以用赋值语句或输入语句为数组元素指定初值。两者的区别是:初始化是在编译阶段完成的,而赋值语句和输入语句都是在运行时完成的。

    相关文章

      网友评论

      • 232ae72d57c9:写的很清楚:+1:
      • 曾樑:C语言基础吖,唐浩强,哈哈
        曾樑:@彷徨君 对对对,哈哈,红色的
        hjai:@真一 应该是谭浩强吧,编写那本据说销量很叼的c语言教科书的人
        真一:@曾樑 的确都是最基础的。唐浩强是谁?

      本文标题:【C语言】-一维数组

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