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