1、数组:是集合的一种,用于处理批量的数据。
2、数组的内存结构特征:①连续的内存空间
②一个数组只能存放同一数据类型的数据
③数组空间大小一旦声明,不能更改
3、一维数组的定义:
数据类型 数组名[数组长度];
如:int array[10]; (整型数组,数组名为array,数组长度为10)
数组元素的下表一律从0开始(寻址方便),在上面的例子中,array数组的数组元素array[0],array[1],array[2],array[3],array[4].
在数组中,用数组名表示该数组存储空间的首地址。在上面例子中,array代表数组的首地址,即array[0]存储单元的地址。
4、一维数组的初始化
如:int array[5]={0}; 相当于给数组array的每个元素都赋值为0;
如果给数组赋值少于数组长度,则制定位置赋指定值,其他位置数组元素全部默认为0
如:int array[5]={1,2}; 相当于array[0]=1,array[1]=2,array[2]=0,array[3]=0,array[4]=0;
一维数组的输入和打印需要用循环来实现:
#include<stdio.h>
void main()
{
//输入数组元素
int i = 0, array[5]={0};
for(i = 0;i < 5; i++)
{
printf("请输入第%d个数组元素:",i+1);
scanf("%d",&array[i]);
}
//打印数组元素
printf("该数组是:");
for(i = 0; i < 5; i++)
{
printf("%-4d",array[i]);
}
printf("\n");
}
5、二维数组:当数组元素具有两个下标的时候,称为二维数组
二维数组定义:
数据类型 数组名[行长度][列长度];
如:int array[2][3];
array数组有2行3列,共2*3个数组元素。在存储时按行存放,即先存放0行的3个数组元素,再存放1行的3个元素。
二维数组的输入和打印需要用双重循环来实现,其中外层循环控制行,内层循环控制列:
/*
用星星实现:
*
**
***
****
*****
*/
#include <stdio.h>
void main()
{
int i,j;
for(i = 0; i < 5; i++)
{
//空格
for(j = 0; j < 4 - i; j++)
{
printf(" ");
}
//星星
for(j = 0; j < i + 1; j++)
{
printf("*");
}
//回车
printf("\n");
}
}
6、越界问题:系统不检查数组元素下标是否越界,只能由编程者自己掌握,下标越界会破坏其他变量的值,因此编程时应保持数组元素下标不越界。