C 数组

  • Post category:C

C 数组是 C 语言提供的一种非常重要的数据结构,它可以存储相同类型的数据集合并进行操作。

下面就来详细讲解 C 数组的完整使用攻略。

定义数组

C 数组的定义需要指定数组的数据类型、数组名称和数组的大小。以下是定义数组的基本语法:

data_type array_name[array_size];

例如,定义一个包含 5 个 int 类型元素的数组:

int numbers[5];

或者定义一个包含 3 个 double 类型元素的数组:

double scores[3];

数组的赋值与访问

数组的赋值可以使用循环语句或直接为其元素进行赋值。比如为之前定义的 numbers 数组中每个元素赋值:

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

数组的访问同样可以使用循环语句或直接访问数组元素的下标,下标从 0 开始。

for(int i=0; i<5; i++){
    printf("numbers[%d] = %d\n", i, numbers[i]);
}

// 直接访问数组元素
printf("numbers[2] = %d\n", numbers[2]);

以上代码输出:

numbers[0] = 1
numbers[1] = 2
numbers[2] = 3
numbers[3] = 4
numbers[4] = 5

numbers[2] = 3

另外需要注意的是,数组的越界访问会导致程序异常退出,因此在访问数组元素时需要确保下标不超过数组大小。

二维数组

C 语言还支持二维及以上的多维数组,它们的定义与一维数组类似。以下是定义一个二维数组的基本语法:

data_type array_name[row_size][column_size];

例如,定义一个包含 3 行 4 列 int 类型元素的二维数组:

int matrix[3][4];

可以使用两重循环进行赋值和访问。

for(int i=0; i<3; i++){
    for(int j=0; j<4; j++){
        matrix[i][j] = i * j;
    }
}

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

以上代码输出:

matrix[0][0] = 0
matrix[0][1] = 0
matrix[0][2] = 0
matrix[0][3] = 0
matrix[1][0] = 0
matrix[1][1] = 1
matrix[1][2] = 2
matrix[1][3] = 3
matrix[2][0] = 0
matrix[2][1] = 2
matrix[2][2] = 4
matrix[2][3] = 6

以上就是 C 数组的完整使用攻略,任何使用 C 语言编写程序的工程师都应该掌握这个非常重要的数据结构。