系列连载
- 【python / C / C++】
参考
- 《C语言程序设计(第四版)谭浩强》
- 【C语言】C语言视频教程
- 《郝斌 C 语言自学教程》
文章目录
- 为什么需要数组
- 数组的分类
- 一维数组
- 二维数组
- 多维数组
#include<stdio.h>
int main(){
int a[5] = { 1, 2, 3, 4, 5 };
for (int i = 0; i < 5; i++){
printf("%d\n", a[i]);
}
return 0;
}
printf a[5] 可以,给 a[5] = 100 进行赋值会报错
为什么需要数组
- 为了解决大量同类型数据的存储和使用问题
- 为了模拟现实世界(多维)
数组的分类
一维数组
1)怎样定义一维数组
- 为 n 个变量连续分配存储空间
- 所有的变量数据类型必须相同
- 所有变量所占的字节大小必须相等
2)操作
- 初始化
完全初始化 int a[5] = {1,2,3,4,5};
不完全初始化 int a[5] = {1,2,3};
不初始化,所有元素是垃圾值
清零 int a[5] = {0}; - 赋值
- 排序
- 求最大、最小值
- 倒序
#include<stdio.h>
int main(){
int a[7] = { 1, 2, 3, 4, 5, 6, 7 };
int i = 0, j = sizeof(a)/sizeof(a[0]) -1, temp; // j 是获取数组的长度 -1 下标
while (i < j){
temp = a[i];
a[i] = a[j];
a[j] = temp;
i++;
j--;
}
for (i = 0; i < sizeof(a) / sizeof(a[0]); i++){
printf("%d\n", a[i]);
}
}
二维数组
初始化
输出
#include<stdio.h>
int main(){
int a[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("%-5d", a[i][j]);
}
printf("\n");
}
}
output
1 2 3 4
5 6 7 8
9 10 11 12
多维数组
不存在
因为内存是线性唯一的
n 维数组可以当作每个元素是 n-1 维数组的一维数组