1、为什么需要数组?
为了解决大量同类型数据的存储和使用;
为了模拟现实世界
2、数组的分类
一维数组
为n个变量连续分配存储空间;
所有的变量数据类型和所占的字节大小必须都相同。
有关一维数组的操作:
初始化
完全初始化
int a[5]={1,2,3,4,5};
不完全初始化,未被初始化的元素自动为零
int a[5]={1,2,3};
不初始化,所有元素是垃圾值
int a[5]
清零
int a[5]={0};
【 错误写法】:
————int a[5];
a[5]={1,2,3,4,5};//错误
只有在定义数组的同时才可以整体赋值,其他情况下整体赋值都是错误的,上述的a
[5]表示的就是数组a的第六个元素。而不是整个数组。
————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];
赋值;排序;求最大/小值;倒置;查找;插入;删除
/************************************
2011年9月9日19:11:12
目的:把一个数组的元素全都倒过来
*************************************/
#include<stdio.h>
int main(void)
{
int a[8]={1,2,3,4,5,6,7,8};
int i,j;
int t;
i=0;
j=7;
while(i<j)
{
t=a[i];
a[i]=a[j];
a[j]=t;
i++;
--j;
}
for(i=0;i<8;i++)
printf("%d\n",a[i]);
return 0;
}
二维数组
a[i][j]表示第i+1行第j+1列的元素;
初始化:
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}
int a[3][4]={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
}
对二维数组排序
求每一行的最大值
判断矩阵是否对称
矩阵的相乘
多维数组 不存在多维数组
因为内存是线性一维的 n维数组可以当做每个元素是n-1维数组的一维数组