C语言课件 数组_第1页
C语言课件 数组_第2页
C语言课件 数组_第3页
C语言课件 数组_第4页
C语言课件 数组_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数组,c语言编程lecture 6,2,2,数组(array )是多个同种数据对象的组合。 生成数据类型的一个数组中汇集了多个数据数组元素。 可以处理数组中的元素,也可以统一处理一组元素(所有元素)。 数据对象的组合:数组,3,数组机制解析:1 )数组描述,数组变量定义2 )数组的使用。 3 )数组实现,数组存储方法,包括在数组后缀变量中使用元素。 4、在数组元素、c语言中,可以具有单下标字符数组元素、双下标字符数组元素、多下标字符数组元素。 下标用括号括起来,下标用常数、变量和表达式,计算机自动整数化。 例如,a5、b23、abc1157等。 元素:相同的数据类型,由数组名称和下标决定的5、

2、一维数组、字符数组、二维数组、程序示例、6、一维数组的定义、下标的数组只有一个。 类型识别符数组名元素的示例int a6; 编译时分配连续存储器的字节数=数组维* sizeof (元素数据类型),数组名表示存储器的开头地址,地址常数,7,说明:1,类型识别符:数组元素的类型2,数组名的命名规则与识别符的命名规则相同。 3、数组“元素个数”是数组的长度,只能指定一个整数常数或整数符号常数。 4、下标是数组元素数组中的顺序号,从0开始。 5、下标只有规则类型的数据(常数和常数表达式)。 6 .每个元素都可以用作变量: a0=5; a1=4; 例如:试着判断下一个数组定义是否合法: # define

3、s tu 35 floats no _ students tu; int score_studentSTU*3; int人员(10 ) int n=10,an; 8、数组必须首先定义。 其次,只能单独引用数组元素,不能一次引用整个数组。 数组名称的下标:下标是常数或整数表达式: a0=a5 a7-a2*3 /*常数和表达式是下标*/ai=ai 1; /*变量为下标*/aa0=a1 /*数组元素为下标*/、二、一维数组的引用,示例int a10; printf(“%d”,a; () for(j=0; j10; j )打印机(“% dt”,aj ); ()、9,main() int i,a15;

4、for(i=0; i=0; i-) printf(“M”,ai )注意: 1、循环控制变量的初始值、结束值、控制条件。 2、不能输出整个排列,例如从键盘输入15个整数,按相反顺序输出。 输入: 1、2、3、4、6、7、8、11、13、15输出: 15、13、12、9、7、5、3、1,例如:打印(“% d”,a ); 错了。 十、例int a5; a相当于五个变量,a0 a4可以视为变量名称。 三、一维数组的存储结构、数组变量分配给存储器连续的存储单元,数组元素按数组的下标从大到小的顺序存储。11、仅对部分数组元素分配初始值,对所有数组元素分配初始值时,请不要指定数组长度。 静态int a5;

5、等价: a0=0; a1=0; a2=0; a3=0; a4=0; 等效于int5=6、2、a0=6; a1=2; a2=3; a3=0; a4=0; 如int5=1、2、3、5,1那样()、4、一维阵列的初始化、初始化方式在定义阵列时,对阵列元素赋予初始值(在编译阶段得到初始值),int5=1、2、3、4、5; 等价: a0=1; a1=2; a2=3; a3=4; a4=5; 说明:数组不初始化,其元素值为随机数,不为static数组元素提供初始值,系统自动提供0值,inta=1,2,3,4,5,6; 编译系统根据初始值的数量来确定数组维度,并根据12,例如#include main()

6、int i,a5=3,4,5,b5; printf (“narray a is :”) for (I=0; i5; I )打印(“m”,ai )打印(“伪b is :”) for (I=0; i5; i ) printf(“%d,bi ),执行结果: array asis :350 array isos :-32,1398,40,1170,454,/*随机数*/,13,Tip :操作数组的多个或所有元素通用的for语句和循环变量。 变量遍历数组的所有下标: for (n=0; n数组长度n ) . 问题:假设程序中写着int a30 (n=2; n=30; n )您试图在循环期间访问a30,但

7、实际上没有该元素。 用超数组范围的下标访问元素:越境访问。 是数组使用中最常见的语义错误。 14、例子分配给数组。主() int I,a10; for (i=0; i=9; I )扫描(“% d”,示例性程序,15,示例,主() int arr 10,I,k=0; for(i=0; i10; i ) arri=i; for(i=0; i4; i ) k=arri i; printf(“%dn”,k; 程序示例,16,主() int k,t=1,a3=1,2,3; for(k=0; k3; k ) PS=PS-t; for(k=0; k3; k )打印(“m”,ak ),例如,程序示例,17,例如,主() inta=2,3,4,5,6,7,8,9; int i、r=1、n=3; for(i=0; i=n; i ) r=r*bi; printf(“%dn”,r; 程序示例18,示例定义了一个长度为10的整数类型的一维阵列,从键盘输入10的整数,分别存储在10个阵列元素中,按相反顺序存储阵列元素并输出值。 程序示例,分析:1. a0和a9的交换,a1和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论