C语言 数组

什么是数组?

数组是一种数据结构,用于存储相同类型的元素。数组中的每个元素都通过索引来访问,索引通常是从0开始的整数。数组提供了方便的方式来组织和处理一组相关的数据。

数组的定义

在C语言中,数组可以通过以下方式来定义:

例如,定义一个包含5个整数的数组:

在这个例子中,numbers 是数组的名字,它可以存储5个整型数据。

初始化数组

数组可以在定义时进行初始化。如果在定义数组时提供了初始值,那么可以省略数组的长度声明,编译器会根据提供的初始值自动计算数组的长度。

完全初始化

在这个例子中,数组 numbers 包含5个整数,分别是1、2、3、4和5。

部分初始化

如果部分初始化数组,那么未初始化的元素会被设置为0。上面的例子中,numbers 数组将包含3个元素:1、2和3,并且后面两个元素(第4个和第5个)被设置为0。

省略初始值

在这种情况下,只有前两个元素被初始化为1和2,其余的元素默认初始化为0。

访问数组元素

数组元素是通过它们的索引来访问的。索引是从0开始的,所以第一个元素的索引是0,第二个元素的索引是1,以此类推。

修改数组元素

可以通过索引来修改数组中的元素。例如:

多维数组

多维数组是指在数组中的元素本身也是一个数组的情况。最常见的是二维数组,可以用来表示矩阵。

定义和初始化

在这个例子中,matrix 是一个3x3的二维数组。

访问多维数组元素

多维数组的元素也是通过索引来访问的。对于二维数组,需要指定行索引和列索引。

数组作为函数参数

数组在传递给函数时,实际上传递的是数组的第一个元素的地址。这意味着函数内部对数组元素的修改会影响到原始数组。

示例代码

-- -------------------- ---- -------
-------- ---------

---- --------------- ------ --- ----- -
    --- ---- - - -- - - ----- ---- -
        ------ -- --
    -
-

--- ------ -
    --- --------- - --- -- -- -- ---
    --- ---- - --------------- - -------------------

    -------------------- ------

    --- ---- - - -- - - ----- ---- -
        ---------- -- ------------
    -

    ------ --
-

这段代码中,modifyArray 函数接收一个整型数组和它的大小作为参数。该函数将数组中的每个元素乘以2。由于数组作为指针传递,所以原始数组被修改了。

数组和指针的关系

在C语言中,数组名本质上是一个指向数组第一个元素的指针。因此,数组和指针有很多相似之处,但也有重要的区别。

示例代码

-- -------------------- ---- -------
-------- ---------

--- ------ -
    --- --------- - --- -- -- -- ---

    -- ---------
    -------------- ---------- -- -- -

    -- --------
    --- ---- - --------
    -------------- ----- - ---- -- -- -

    ------ --
-

在这个例子中,我们展示了如何使用数组名和指针来访问数组元素。数组名 numbers 实际上等同于 &numbers[0],即指向数组第一个元素的指针。指针运算 ptr + 1 将指针移动到下一个元素的位置,然后解引用得到该位置的值。

结尾注意事项

数组在C语言中是一个非常重要的概念,掌握它对于学习更复杂的编程技术至关重要。在实际编程中,数组经常与其他数据结构和算法结合使用,因此理解数组的工作原理是非常有益的。

上一篇: C语言 作用域规则
下一篇: C语言 指针
纠错
反馈