数组
- 用于解决大量同类型数据的存储和使用问题
- 如:int a[5]={1,2,3,4,5}
a是数组的名字,5是数组的个数,这五个元素分别为a[0],a[1],a[2],a[3],a[4]
- int a[m][n]:表示a为m行n列
一维数组
- 为n个变量连续分配存储空间
- 所有变量数据类型必须相同
- 所有变量所占字节必须相同
应用
1.初始化
- 初始化:完全初始化 int a[5]={1,2,3,4,5};
- 不完全初始化:(未被初始化的元素为0) int a[5]={1,2,3};
- 不初始化:元素全为垃圾值
- 清零 int a[5]=0
注意:只有在定义数组的同时才可以整体赋值,其他情况下数组整体赋值都是错的
要把a数组的值全部复制给b数组
错误的写法:b=a
正确的写法: for(i=0;i<5;++i)
b[i]=a[i];
2.赋值:scanf("%d",&a[0])
3.一维数组名不代表数组中的所有元素,代表数组第一个元素的位置
二维数组
int a[3][4] 共12个元素,可以当做3行4列判断,这12个元素的名字依次是
a[0][0],a[0][1],a[0][2],a[0][3]
a[1][0],a[1][1],a[1][2],a[1][3]
a[2][0],a[2][1],a[2][2],a[2][3]
即a[i][j]表示i+1行j+1列的元素
- int a[m][n];该二维数组最大位置的元素只能是a[m-1][n-1]
输出二维数组内容:
for(i=0;i<3;++i)
{
for(j=0;j<4;++j);
printf("%d",a[i][j]);
printf("\n");
}
不存在多维数组,因为内存是线型一维的
n维数组可以当做每个元素是n-1维数组的一维数组
比如: int a[3][4]; 该数组是含有3个元素的一维数组,只不过每个元素都可以再分成4个小元素。