整理C知识点--数组
数组是为了解决大量同类型数据的存储和使用(e.g 需要10000个同类型数据,定义这么多变量 只是取变量名称就是一个浩大的工程)
数组的分类:一维数组,二维数组,多维数组
一维数组:
(1).为N个变量连续分配存储空间
(2).所有的变量数据类型必须相同
(3).所有变量所占的字节大小必须相当
e.g
int a[5];//含有5个元素 起始元素是a[0],最后一个元素是a[4]
数组的使用:
1.初始化:
完全初始化
int a[5] = {1,2,3,4,5};
不完全初始化
int a[5] = {1,2,3};//未被初始化的元素=0
不初始化
int a[5];
清零
int a[5] = {0};
数组的错误写法:
(1).int a[5];
a[5] = {1,2,3,4,5}//错误写法
定义数组的同时赋值,其他情况下的赋值都是错误的。
(2).int a[5] = {1,2,3,4,5};
a[5] = 100;//错误 因为没有a[5]元素 最大元素a[4]
(3).int a[5] = {1,2,3,4,5};
int b[5];//把a数组中的值全部赋值给b数组
错误写法:b = a;
正确写法:
for (i=0;i<5;++i)
b[i] = a[i];
2.数组的赋值,排序,求最大最小值 倒置 查找 插入 删除等功能
二维数组:
int a[2][3];//6个元素,2行3列:
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
a[2][3]在这个位置,不属于int a[2][3]
int a[i][j] 最后一个元素是a[i-1][j-1]
初始化二维数组:
int a[2][3] = {1,2,3,4,5,6} 或者
int a[2][3] = {
{1,2,3},
{4,5,6},
};
输出数组内容:
int a[2][3] = {1,2,3,4,5,6};
int i,j;
for (i=0;i<2;++i)
{
for (j=0;j<3;++j)
printf("%d ",a[i][j]);
printf("\n");
}
多维数组:N维数组可以当做每个元素是N-1维数组的一维数组
e.g :
int a[2][3];
该数组是含有2个元素的一维数组;每个元素又再分成3个二级元素
int a[2][3][4];
该数组是含有2个元素的二维数组;每个元素都是3行4列的二维数组