一、数组概述
- 为什么需要数组
为了解决大量同类型数据的存储和使用问题
为了模拟现实世界 - 数组的分类:
一维数组
怎样定义一维数组:
为n个变量连续分配存储空间;
所有的变量数据类型必须相同;
所有变量所占字节的大小必须相等
例子:int a[5]
一维数组名不代表数组中所有的元素,代表数组第一个元素的地址
有关一维数组的操作:
初始化:
常见错误:赋值
排序
int a[7]={1,2,3,4,5,6,7};
int i;
int j,t;
i=0;
j=6;
while(i<j){
t=a[i];
a[i]=a[j];
a[j]=t;
i++;
--j;
}
for(i=0;i<7;i++){
printf("%d\n",a[i]);7 6 5 4 3 2 1
}
求最大/最小值
倒置
查找
插入
删除
二维数组
int a[3][4]:总共是12个元素,可以当做3行4列看待,这12个元素的名字依次是:
初始化
操作:
输出二维数组内容:
int a[3][4]={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
int i,j;
for(i=0;i<3;++i){
for(j=0;j<4;++j){
printf("a[%d][%d]=%d\t",i,j,a[i][j]);
}
printf("\n");
}
对二维数组排序
求每一行的最大值
判断矩阵是否对称
矩阵的相乘
多维数组
是否存在多维数组:不存在。因为内存是线性一维的
n维数组可以当做每个元素是n-1维数组的一维数组