C语言入门阶段07:C语言数组

        嗨喽,大家好,我是程序猿老王,程序猿老王就是我。
        今天给大家讲一讲C语言数组。

目录

一、什么是数组

二、数组定义

三、数组初始化

四、数组访问

五、数组遍历

六、二维数组

七、指针与数组的关系

八、易错点


一、什么是数组

        数组是一组具有相同数据类型的元素的集合,这些元素按照一定的顺序排列在一起,并且可以使用一个标识符(即数组名)来引用整个数组。可以通过下标(或索引)来访问数组中的每个元素,其中第一个元素的下标为0。

二、数组定义

定义一个数组需要指定以下三个参数:

  • 数据类型:数组中元素的数据类型。
  • 数组名:用于标识数组的名称。
  • 数组大小:数组中元素的个数。
  • 如下:
data_type array_name[array_size];

        其中,data_type表示数组元素的数据类型,array_name表示数组的名称,array_size表示数组的大小,即它可以存储的元素个数。例如,定义一个包含5个整数的数组,可以使用以下语句:

int myArray[5];

三、数组初始化

        在定义数组时,也可以同时为数组的元素赋初值。有两种方式可以初始化数组:
1.指定每个元素的值
省略数组大小,由编译器自动计算数组大小。
例如,下面的代码定义并初始化了一个包含5个整数的数组:

int myArray[5] = {1, 2, 3, 4, 5};

2.也可以省略数组大小,由编译器自动计算数组大小:

int myArray[] = {1, 2, 3, 4, 5};

四、数组访问

        在C语言中,可以使用数组下标访问数组中的元素。数组下标从0开始,最大值为数组大小减1。例如,下面的代码访问了数组中的第三个元素:

int myArray[5] = {1, 2, 3, 4, 5};

int x = myArray[2]; // x = 3

        也可以使用指针来操作数组,因为在C语言中,数组名是一个指向数组第一个元素的指针。例如,下面的代码使用指针访问了数组中的第二个元素:

int myArray[5] = {1, 2, 3, 4, 5};

int *p = myArray;

int x = *(p + 1); // x = 2

五、数组遍历

        在C语言中,可以使用循环结构来遍历数组中的元素。例如,下面的代码使用for循环遍历数组中的所有元素:

int myArray[5] = {1, 2, 3, 4, 5};

for (int i = 0; i < 5; i++) {

    printf("%d ", myArray[i]);  //输出结果为:1 2 3 4 5

}

六、二维数组

        二维数组(Two-dimensional array)是一种特殊的数组,它可以看作是一个由行和列组成的表格或矩阵。在C语言中,二维数组也是一种基本的数据类型,用于存储多个元素,每个元素由两个下标指定。
在C语言中,定义二维数组的语法格式如下:

type array_name[row_size][column_size];

        其中,type是数组元素的类型,array_name是数组的名称,row_size和column_size分别是数组的行数和列数。
例如,下面的代码定义了一个3行4列的整数数组:

int my_2d_array[3][4];

        在定义二维数组时,需要注意数组的行列顺序。行数在前,列数在后,例如上述代码定义的是一个3行4列的数组。
        二维数组的元素访问需要使用两个下标,第一个下标指定行号,第二个下标指定列号,下标的取值范围是从0到行数-1和列数-1。
例如,访问二维数组my_2d_array中第2行第3列的元素,可以使用以下语句:

int x = my_2d_array[1][2]; // 第2行第3列,行下标为1,列下标为2

        需要注意的是,在访问二维数组元素时,需要保证下标的值在数组的合法范围内,否则会导致数组越界错误。

在C语言中,可以定义多维数组,例如,下面的代码定义并初始化了一个3行4列的二维数组:

int myArray[3][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

        使用循环结构遍历二维数组中的所有元素,例如,下面的代码使用嵌套的for循环遍历了二维数组中的所有元素:

int myArray[3][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 4; j++) {
        printf("%d ", myArray[i][j]);
    }
    printf("\n");
}

七、指针与数组的关系

        在C语言中,数组名是一个指向数组第一个元素的指针。因此,可以使用指针来操作数组中的元素。例如,下面的代码使用指针访问了数组中的第二个元素:

int myArray[5] = {1, 2, 3, 4, 5};

int *p = myArray;

int x = *(p + 1); // x = 2

        指针也可以用于遍历数组中的所有元素。例如,下面的代码使用指针遍历数组中的所有元素:

int myArray[5] = {1, 2, 3, 4, 5};

int *p = myArray;

for (int i = 0; i < 5; i++) {

    printf("%d ", *(p + i));

}

八、易错点

        数组下标越界:访问数组时,下标超出数组范围会导致程序崩溃。因此,在访问数组元素时需要确保下标在合法范围内。

int array[3] = {1, 2, 3};

int element = array[3]; // 超过了数组的范围

        未初始化数组:未初始化的数组中的元素值是未定义的,使用未初始化的数组会导致程序行为不可预测。

int my_array[5];

printf("%d\n", my_array[0]); // 数组中的值是不确定的,可能是0,也可能是其它值

        混淆指针和数组:指针和数组虽然有相似之处,但是使用不当会导致程序崩溃。因此,在使用指针和数组时需要区分清楚。今天的内容就到这里了,欢迎大家的观看,我们下期再见!

---END---


        关于更多嵌入式C语言、FreeRTOS、RT-Thread、Linux应用编程、linux驱动等相关知识,关注公众号【嵌入式Linux知识共享】,后续精彩内容及时收看了解。

 

你可能感兴趣的:(C语言入门阶段,c语言,单片机,mcu,改行学it)