c语言数组知识点总结

  • 格式:docx
  • 大小:24.45 KB
  • 文档页数:5

c语言数组知识点总结

一、数组的定义和初始化

1.1 数组的定义

在C语言中,数组的定义格式如下:

```c

type arrayName[arraySize];

```

其中,type表示数组元素的数据类型,arrayName表示数组的名称,arraySize表示数组的大小。

例如,定义一个整型数组:

```c

int numbers[5];

```

这样就创建了一个名为numbers的整型数组,它包含5个元素。

1.2 数组的初始化

数组的初始化是指在定义数组的同时给数组元素赋初值。有两种方式初始化数组,一种是在定义的同时初始化,另一种是定义后逐个元素进行赋值。

在定义的同时初始化:

```c

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

```

这样就创建了一个包含5个整数的数组,并依次初始化为1, 2, 3, 4, 5。

逐个元素进行赋值:

```c

int numbers[5];

numbers[0] = 1; numbers[1] = 2;

numbers[2] = 3;

numbers[3] = 4;

numbers[4] = 5;

```

以上两种方式都可以初始化数组,但在定义的同时初始化更为简洁和直观。

二、数组的访问和操作

2.1 数组的访问

数组的元素可以通过下标进行访问,下标从0开始,依次递增。

例如,访问上面定义的整型数组numbers的第三个元素:

```c

int num = numbers[2];

```

这样就可以获取数组中的第三个元素,即3。

2.2 数组的操作

数组的操作包括对数组进行赋值、比较、排序等。

对数组赋值:

```c

int numbers[5];

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

numbers[i] = i + 1;

}

```

这样就可以通过循环对数组进行赋值,使其依次为1, 2, 3, 4, 5。

对数组排序: ```c

#include

#include

int compare(const void *a, const void *b) {

return (*(int*)a - *(int*)b);

}

int main() {

int numbers[] = {3, 1, 4, 1, 5, 9};

int size = sizeof(numbers) / sizeof(numbers[0]);

qsort(numbers, size, sizeof(int), compare);

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

printf("%d ", numbers[i]);

}

return 0;

}

```

运行结果为1 1 3 4 5 9,即对数组进行了升序排序。

三、多维数组

3.1 二维数组

在C语言中,可以定义多维数组,其中最常见的是二维数组。二维数组可以看作是由多个一维数组组成的,可以用行和列来表示。

```c

int matrix[3][4] = {

{1, 2, 3, 4},

{5, 6, 7, 8},

{9, 10, 11, 12} };

```

这样就创建了一个3行4列的二维数组matrix。

二维数组的访问和操作与一维数组类似,只是需要使用两个下标来访问元素。

3.2 多维数组

除了二维数组外,C语言还支持定义更高维度的多维数组,不过使用较少。

四、指针与数组

4.1 指针与数组的关系

在C语言中,指针和数组有着密切的关系,数组名其实就是数组首元素的地址,因此可以用指针访问数组元素。

```c

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

int *p = numbers; // 数组名即为数组首元素的地址

printf("%d", *p); // 输出1

```

4.2 指针和数组的运算

指针和数组还可以进行运算,例如指针加减整数就相当于移动指针,指针相减得到的值表示两个指针之间的距离,等等。

```c

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

int *p = numbers;

printf("%d", *(p + 2)); // 输出3

printf("%d", *(p - 1)); // 输出未定义

printf("%ld", p - numbers); // 输出0

``` 以上就是C语言数组的基本知识点总结,包括数组的定义、初始化、访问、操作、多维数组、指针与数组等内容。对于初学者来说,掌握这些知识是非常重要的,可以帮助更好地理解和运用数组,提高编程水平。