一维数组: 同种类型数据元素的有序集合
一、定义:储存类型 数据类型 数组名[数组大小]
存储类型:auto(默认),register,static,extern,
数据类型:char,short,int,long,float,double
数组名:标识符,数组名是一个地址常量,不能对其进行赋值(即不能为=的左值),是数组空间的起始地址,代表整片数组。
标识符:由数字,字母,下划线组成,不能以数字开头,不能与关键字重名
[]:偏移符,偏移引用,eg:arr[n]n为常数,是数组的下标,代表arr数组的第n+1个元素(数组下标都是从0开始的)
eg:int arr[10]是由10个int类型数据组成的名为arr的一维数组。
二、初始化 :
1.完全初始化:int arr[4]={1,2,3,4};
2.部分初始化:int arr[4]={1,2}; (未初始化部分默认为0)
3.省略初始化 (缺省初始化):int arr[]={1,2} 默认该数组有两个元素(给定多少个元素就开辟多大的空间)
注意:全局数组,未初始化时,其元素默认为0;
局部数组:未初始化时,其元素为随机值;
三、赋值:
1:int arr[3];
arr[0]=1; arr[1]=2; arr[2]=3; 根据下标对其一个一个的赋值。
2:int arr[3];
int arr1[3]={1,2,3};
arr=arr1; //把初始化过的arr1的值赋值给arr。
四、数组元素的个数:
sizeof(数组名)/sizeof(元素数据类型) eg:sizeof(arr)/sizeof(int)
sizeog(数组名)/sizeof(某一个元素) eg:sizeof(arr)/sizeof(arr[0])
例1:定义一个数组arr[5]={12,43,67,55};求这组数的平均值
{
int arr[5]={12,43,67,55};
int sum=0; //总和,初始化为0
int ave=0; //平均值,初始化为0
for(int i=0;i<5;i++) //遍历数组
{
sum+=arr[i]; //求和
}
ave=sum/5;
print("平均值为%d\n",ave);
}
例2:用户自定义一个数组
//一:循环输入
{
int arr[5]={0}; //局部数组,初始化为0
for(int i=0;i<5;i++)
{
scanf("%d",&arr[i]);
}
}
//二:给首地址
{
int arr[5]={0};
scanf("%d",arr); //arr为数组首地址,代表整片空间,输入时以空格隔开,以回车结束输入
}