首页 > 编程笔记 > C语言笔记

C语言数组的定义和赋值(多种方法)

数组是C语言中最基本也是最常用的数据结构之一,它允许我们在连续的内存位置上存储相同类型的多个数据项。一维数组可以被想象成一排整齐排列的盒子,每个盒子都可以存放一个数据项。

接下来,让我们深入了解数组的定义和赋值方法。
 

在C语言中,定义一维数组的基本语法如下:

数据类型 数组名[数组大小];

这里,数据类型指定了数组中每个元素的类型,可以是 int、float、char 等;数组名是我们给数组起的名字;方括号中的数组大小则指定了数组可以容纳的元素数量。


举个例子,如果我们想定义一个包含 5 个整数的数组,可以这样写:

int numbers[5];

这行代码创建了一个名为 numbers 的数组,它可以存储 5 个整数。需要注意的是,C语言中数组的索引是从 0 开始的,所以这个数组的有效索引范围是 0 到 4。
 

定义数组后,我们就可以开始给数组赋值了。有几种不同的方式可以为数组元素赋值。

1. 逐个元素赋值

我们可以使用数组的索引来访问和修改每个元素,例如:

int numbers[5];
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
numbers[3] = 40;
numbers[4] = 50;

2. 在定义时初始化

我们可以在定义数组的同时为其赋初值。这种方法特别方便,尤其是当我们预先知道数组中应该包含哪些值时。语法如下:

int numbers[5] = {10, 20, 30, 40, 50};

使用这种方法时,我们用花括号{ }包围初始值,各值之间用逗号分隔。

3. 部分初始化

如果我们只想初始化数组的部分元素,可以这样做:

int numbers[5] = {10, 20, 30};

在这个例子中,数组的前三个元素被初始化为 10、20 和 30,而剩下的两个元素会被自动初始化为 0。C语言会自动将未显式初始化的数组元素设置为 0。

4. 省略数组大小

如果我们在定义时就初始化数组,那么可以省略数组大小,让编译器根据初始化列表的元素个数来确定数组大小。例如:

int numbers[] = {10, 20, 30, 40, 50};

在这个例子中,编译器会自动将 numbers 数组的大小设置为 5。

5. 使用循环赋值

当我们需要用某种模式填充数组时,使用循环是一个很好的选择。例如,如果我们想用 1 到 5 的平方数填充数组:

int numbers[5];
for (int i = 0; i < 5; i++) {
    numbers[i] = (i + 1) * (i + 1);
}

执行这段代码后,numbers 数组将包含 1、4、9、16 和 25。


在使用数组时,我们需要特别注意不要访问超出数组边界的元素。C语言不会自动检查数组边界,如果我们试图访问或修改超出数组范围的元素,可能会导致程序崩溃或产生不可预知的结果。
 

了解了数组的定义和赋值方法后,让我们来看一个完整的示例,展示如何定义、初始化和使用一个一维数组:

#include <stdio.h>

int main() {
    // 定义并初始化数组
    int scores[5] = {85, 92, 78, 90, 88};
    
    // 计算总分
    int total = 0;
    for (int i = 0; i < 5; i++) {
        total += scores[i];
    }
    
    // 计算平均分
    float average = (float)total / 5;
    
    // 打印结果
    printf("总分:%d\n", total);
    printf("平均分:%.2f\n", average);
    
    return 0;
}

这个程序定义了一个包含 5 个学生成绩的数组,然后计算总分和平均分。运行这个程序,我们会得到类似下面的输出:

总分:433
平均分:86.60

通过这个例子,我们可以看到数组如何在实际编程中发挥作用,它允许我们轻松地存储和处理一组相关的数据,使得代码更加简洁和高效。

推荐阅读