所谓数组,就是相同数据类型的元素按一定顺序排列的集合。
数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。
数组是用来存储一些相同类型的数据的,静态数组大小在编译期就确定了,静态数组的大小是固定的。如果要在程序运行期间根据需要动态分配指定大小的数组则要用到动态数组,可以使用new[]来做到或者使用vector来做到,使用new[]就要记得用完后要释放对内存,而vector却不需要考虑(内部已经帮我们处理好了)。
数组中的数据在内存里是连续的。数组的底层是一块连续的内存。
一维数组:
int a[3]; a代表的是一个数组,但a的值是数组首元素的首地址。
二维数组:
int a[3][3]; 可以理解成由a[0],a[1],a[2]构成的数组,而a[0],a[1],a[2]又都是一维数组。
a代表的是一个二维数组,a的值是这个a[0]的首地址
a[0],a[1],a[2]分别代表的是一个一维数组
a[0]的值是数组a[0]首元素(即a[0][0])的首地址。
a[1]的值是数组a[1]首元素(即a[1][0])的首地址。
a[2]的值是数组a[2]首元素(即a[2][0])的首地址。
p[i]=*(p+i)=*( (char*)(p) + sizeof(i) );