资源描述:
《C语言数组详解.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数组什么是数组???就是一组具有固定数目的、有序的、类型相同的数据的集合。根据数组下标的多少,数组可以分为一维数组和多维数组。例如:一个班级有30个学生,可以用g1,g2,…,g30代表学生的成绩,其中g是数组名,下标代表学生的序号。由于在C语言中无法表示下标,所以就引入了[]表示下标。g[1]:第1个学生的成绩g[i]:第i个学生的成绩等等bd[10]bd[0]bd[1]bd[2]……………………bd[9]数组名:数组中的所有元素具有相同的名字bd。数组元素名数组元素下标数组长度为标识数组中的
2、每个元素,C语言对其进行编号。这个编号称之为数组元素下标。(C语言规定下标从0开始)。指定该数组的数据个数用于访问的、具有相同的数据类型。在程序设计中相当于变量名的用法。一个数组就是一组连续的内存空间,用来保存数据,数组中的每一项称为一个元素。(一)一维数组(1)——定义及使用类型说明符数组名[常量表达式]inta[10]任一种基本数据类型或构造数据类型。用户自定义的数组名字,其定名规则与变量名定名规则一样,都需遵循标识符定名规则表示元素的个数,即数组长度。[]——下标运算符单目运算符优先级(1
3、)左结合不能用()注意:1.数组名不能与其它变量名相同voidmain(){inta;floata[10];……}(一)一维数组(1)——定义及使用2.不能在方括号中用变量来表示元素的个数,但可以是符号常数或常量表达式。……intn;scanf("%d",&n);/*表示维数的只能是常量*/inta[n];#defineFD5voidmain(){inta[3+2],b[7+FD];……}(一)一维数组(1)——定义及使用3.方括号中常量表达式表示数组元素的个数。如inta[5]:数组a有5个元
4、素,其下标从0开始,分别为a[0],a[1],a[2],a[3],a[4]。4.允许在同一个类型说明中说明多个数组和多个变量。例如:inta,b,c,d,k1[10],k2[20];如果出现数组越界,编译系统没有提示的。(一)一维数组(1)——定义及使用数组必须先定义,然后使用。数组元素的表示形式为:数组名[下标]C语言规定只能逐个引用数组元素而不能一次引用整个数组。可以是整型常量或整型表达式(一)一维数组(2)——引用全部初始化部分初始化使用输入函数scanf初始化使用表达式赋值inta[10
5、]={0,1,2,3,4,5,6,7,8,9};a[0]=0;a[1]=1;a[2]=2;a[3]=3;a[4]=4;a[5]=5;a[6]=6;a[7]=7;a[8]=8;a[9]=9;inta[10]={0,1,2,3};a[0]=0;a[1]=1;a[2]=2;a[3]=3;a[4]=0;a[5]=0;a[6]=0;a[7]=0;a[8]=0;a[9]=0;inta[10];for(inti=0;i<10;i++)scanf("%d",&a[i]);inta[10]={0,1,2,3};a
6、[4]=a[3]+2;对全部数组元素赋初值时,数组长度可以省略(一)一维数组(3)——初始化一维数组元素的存储方式inta[5]={1,2,3,4,5};54321a[4]a[3]a[2]a[1]a[0]20202016201220082004a一维数组元素的存储方式#includevoidmain(){inta[5]={0,1,2,3,4};for(inti=0;i<5;i++)printf("a[%d]=%d,其地址是%d",i,a[i],&a[i]);printf("
7、数组的首地址为:%d",a);printf("数组a在内存中占字节数:%d",sizeof(a));}数组名表示数组的起始地址,是一个地址常量程序举例1:用选择排序法进行排序。选择排序法是编程中经常用的一种排序算法。具体如下:先将5个数中最小的数与a[0]对换,再将a[1]到a[4]中最小的数与a[1]对换,这样每比较一轮,找出一个未经排序的数中最小的一个。共比较4轮。inta[5]={3,6,1,9,4};§1.4一维数组程序举例a[0]a[1]a[2]a[3]a[4]36194未排序
8、的情况16394将5个数中最小的数1与a[0]对换13694将余下的4个数中最小的数3与a[1]对换13496将余下的3个数中最小的数4与a[2]对换13469将余下的2个数中最小的数6与a[3]对换main(){inti,j,k,t;inta[5]={3,6,1,9,4};for(i=0;i