数组:将若干数据类型相同的元素,按照一定的顺序排列到一起的集合,以下标的方式存储在具体的数组中。物理存储单元上是连续的。
按照维数:一维数组 buff[10]、二维数组 buff[5][10]、三维数组 buff[2][5][10]等。
按照数组元素类型:数值数组(int buff[10])、字符数组(char buff[10])、指针数组(int* buff[10])、结构数组(struct student buff[10])等。
静态数组:数组的大小是指定的,不可以再改变。(buff[10])
动态数组:声明时没有制定数组的大小,真正使用时,根据具体的需求,申请足够的空间,在堆上,用完需要手动释放.
struct student{
int id;
int buff[0];//动态数组
};
变长数组:以函数传参的方式来指定数组的大小,这个数组是存放在栈上,用来后会自动释放,不需要关注内存的释放。
void test(int size)
{
int buff[size];
......
}
关联数组:又称映射、字典是一个抽象的数据结构,它包含着类似于(键,值)的有序对。
指针数组:数组中每个成员都是,该数据类型的指针。int* buff[10](存放了10个int型指针)
数组指针:指向数组的指针。int(*p)[10] (p是一个指向包含10个整数类型的数组的指针,步长为10个整数。)
一维:int array[3] = {1, 2, 3};
二维:int array[3][4];
int (*p)[3];
一维:p = &array;
二维:p = array;
......
数组的操作:排序、查找、添加、修改和删除
阅读(386) | 评论(0) | 转发(0) |