C的回归基础学习3——数组
前言
计算机比人类强的地方在于可以快速地做简单的运算(这由循环的递归等完成)和强大的记忆能力,而这主要是由若干的数据结构组成,而数据结构往往就是由数组构成。
一维数组
- 数组的下标一律从0开始
- 数组名实际上是一个地址常量,是第一个元素的地址
- 字符串数组的最后一位是 ‘\0’,所以定义字符串数组时最好定义大一点
- 数组的初始化
1.在函数外定义的数组内全为0;
2.在函数内定义会有奇怪的值;
3.int data[10]={1,1,1}只会将前三个元素赋值为1,其他全为0;(在内外均一样) - 建议在定义数组函数时使用常量
const int MAX=xxxxx;
定义方便一次性修改
多维数组(主要是二维数组)
- 数组的初始化:基本与一维数组相同,只是第二维同维元素需要在一个大括号里
- 二维数组的一个重要应用:矩阵(但是一般是在结构体中完成)
- 半维数组:我记忆中一个不太正确的称呼
const int MAX=1000;
int a[MAX][MAX][2];
就是指其中一维的大小只能构成一个常数的空间复杂度,在某些dp当中很好用
结语
其实数组没啥好讲的,当时老师飞快把数组讲完后就让我们学排序了,不过学了那么多,现在就只记得桶排序打法,归并排序算法 以及Sort(start,end,cmp)