一、数组的特点:
- 一致性:同类型数据集合,定义的数组中所有的元素都是同样类型的;
- 有序性:因为是线性的,所有元素都有严格的前后关系,不是指排过序的;
- 连续性:指的是顺序存储关系,数组要求该数组中所有的数据元素存储空间是一块连续的存储空间。
# include <stdio.h>
# include <stdlib.h>
#include <time.h>
int main()
{
srand(time(NULL));//在产生随机数之前将当前系统时间放进去,将当前系统时间作为初始值,注意包含头文件#include <time.h>
int len=10;//const int len=10,也不能直接将len写入数组的方括号中,除非定义一个宏#define LEN 10.
int a[10];//里面只能是常量或常量表达式,不能是小数,里面代表的是数组元素的个数,也可以是'a',必须指明数组大小,不能为负,最小是1。
a[0]=1;
for(int i=1;i<10;++i)
{
a[i]=rand()%6+1;//掷色子,需包含头文件#include <stdlib>
}/*rand()标准C库提供的随机的整型数据,值是从0~32767的伪随机数(因为产生随机数后几次输出的数是一样的),计算机很难产生一个真正的随机数,因为计算机里没有产生随机数的硬件,计算机里的随机数是要通过特定的算法算出来的,这个算法他需要一个初始值*/
return 0;
}
//下标(索引)index;基于0的。
下标可以是变量或是变量表达式,编译器对数组下标越界无能为力,因为下标为变量的时候,变量在编译期间值是可以变得,所以编译器对数组下标越界本身也是无能为力的。
二、一维数组初始化
初始化:在变量定义的同时赋予初值;
int a[10]={1,2,3,4,5,6,7,8,9,10}//挨个儿元素赋初值并用逗号隔开;
int a[10]={1,2,3,4,5};//如果只给数组部分元素初始化,则未被初始化的元素全为0(若为整型则为0,浮点型为0.0,字符型则为ASCⅡ码值为0的字符'\0'),即未初始化元素以位模式清零。
int a[]={1,2,3,4,5};//如果给数组所有元素初始化,则数组长度可以不写,编译器会自动根据初值个数来确定数组长度,如果数组长度大于初值个数则编译器报错,即可小于等于但不能大于。
int len=sizeof(X);//求后面括号里面的X(可以是变量名或是类型名也可以是表达式,但是该表达式一定要有类型)所占存储空间的大小