面向对象程序设计技术_第4章数组资料_第1页
已阅读1页,还剩10页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、第四章数组 :同类型数据元素的集合。 数组类型:数组元素的数据类型。 数组下标:标识数组元素位置的无符号整数。 4.1 一维数组 一维数组:其数据元素线性排列。 定义格式: 类型修饰符 数组名元素个数 类型修饰符 数组名元素个数=初值表; 常量表达式逗号分开 例:char s180; 例:int d =1,2,3,4,5,6 定义、初始化同时 没有明确元素个数: 由初始化数据的个数确定 例:int d =1,2,3,4,5,6 数据不够:后面元素获得默认的初始值。 例:double num5=1.0, 3.0, 5.0 默认的初始值 0.0 例:long data10=0L; 下标访问:数组名

2、下标 、整型表达式 “不是整型 自动转换整型 例:k=num4; cout name3*K; 数组元素个数为n| :最小下标=0最大下标二n-1 例:int array8; array0=1; array7=9 array8=5; /error 不要使用越界下标:I C+不进行下标越界检查: 数组元素在内存:顺序紧凑排列在一起 sizeof(元素类型)|:每个元素占内存的字节数 sizeof(int)个字节J每个数组元素 例:int W5=23,24,25,26; sizeof(元素类型)*n:整个数组占内存的字节数 例:int W5=23,24,25,26; sizeof(int)*5个字节

3、J整个数组 正方向扫描数组: for ( i=0;i n;i+ ). for (i=0;i=0;i-) 表示数组大小:|最好用符号常量或常值变量 例:#define SIZE 8 int data SIZE + 10; sizeof (数组名)/sizeof(数组名0) 求数组元素个数 例:int W=23,24,25,26; sizeof(W) ? sizeof(W)/ sizeof(W0) 数组定义格式一一举例 (1) int a20; (2) double bMS; / 假定MS为已定义的整型常量 (3) int c5=1,2,3,4,0; char d=a,b,c,d; (5) int

4、 e8=1,4,7; (6) char f10=B,A,S,T,C; (7) bool g2*N+1; / 假定N为已定义的整型常量 (8) float h15, h210; (9) short x=1, y=2, z, w4=25+x, -10, x+2*y, 44; (10) int p; 数组元素的访问一一举例 (1) a5 / 下标为一个常数 (2) ai /下标为一个变量 (3) aj+ /下标为后增1表达式 数组元素的赋值一一举例 (1) int a5=0,1,2,3,8; / (2) a0=4; / (3) a1+=a0; / (4) a3=3*a2+1; / (5) couta

5、a0; / / a2*x+1 /下标为一般表达式 定义数组a并进行初始化 把4赋给a0 使a1的值变为5 7赋给a3 对应的元素为a4, 把a0的值4累加到a1, 把赋值号右边表达式的值 因 a0=4,所以 aa0 该语句输出a4的值8 编程者对下标值进行有效性检查一一举例 (1) int a5; (2) for(int i=0; i5; i+) ai=i*i; (3) for(i=0; i5; i+) coutai 4.2多维数组 二维数组:数组元素的排列看成由若干行组成,且, 每一行的元素个数相同; 定义格式: 类型修饰符 数组名行数列数;例:float d45; 类型修饰符 数组名行数门

6、列数=初值表,初值表,; 例:int num3= 1, 3, 5, 0, 2, 4, 6 ; 定义、初始化同时 例:double data53= 0.0 ; 例:int a53=1, 3 , 5, 0, 2, 4, 6 ; 下标访问:数组名行下标列下标 例:double num42; nu m42=6.7; 对错? 定义格式举例 (1) int a33; (2) double bMN; /假定M和N为整型常量 (3) int c24=1,3,5,7,2,4,6,8; int d3=0,1,2,3,4,5,6,7,8; (5) int e34=0,1,2; (6) char fCN+1CN+1,

7、c仁a,c2; / 假定 CN为整型常量 (7) in t g10,h105; (8) int r5; 数组元素访问一一举例(下标必须:整数类型) (1) a23/ (2) aij/ ai 5/ (4) ai-1j+1 / 每个下标均为常量 每个下标均为变量 行下标为变量,列下标为常数 每个下标均为表达式 4.3字符数组与字符串 字符串:一个以0 吉尾的字符序列。 字符串结束符:0 字符串的长度:字符串中字符的个数(不含:0 例:”First line nSecond line 长度:? 字符串的存储空间: 长度为n的字符串需要n+1个字节的存储空间 (1 char 1 字节) 例: ” Fi

8、rst line nSecond line ” 存储空间:?字节 区分 和“ A”:存储长度-不同;包含元素-不同 字符串常量:|字符型数组存储 例:char s1= g: d0 i L 等价 char s2= ”good ”; 字符串变量:|字符型数组 访问字符串:|通过数组名 例: couts1endls2; 结果? 二维字符数组:|作为一维字符数组使用 行数J初始化数据的个数决定 列数不得小于最长的初始字符串的长度加 1 例:char d4= SUN”,MON ”,”TUE”,WED” Thu ”,Fri”,Sat”; coute ndld4; 字符串处理函数:系统提供字符串的操作 st

9、rlen(字符串):求字符串长度 例:coutstrlen( How long? ”); strcpy(字符串变量,字符串):将字符串复制到字符串变量中,原有 内容被覆盖。返回值:字符串变量 例:char s= ”12345 ”; coutvvsvv coutstrcpy(s, ”ABCD”) couts; 结果? strcat(字符串变量,字符串):将字符串复制到字符串变量中原有字符 串的后面。返回值:字符串变量 例:char s= ” 12345 ”; coutvvsvv coutstrcat(s, ”ABCD”) coutvvs; 结果:? strcmp(字符串1,字符串 2): 字符串

10、比大小 (判断依据:字符ASCII码) 返回值:=0串1=串2 0 串1串2 例:if ( !strcmp( ABCD ”,”abed ”) coutvv ”相等”; else coutvv ”不相等”; 结果? strstr(字符串,子串):字符串中寻找子字符串 找到-返回:字符串中从子串超始处开始的后半部分 未找到-返回:空字符串 例: char s= ”abedefghi”; coutvs3vv v字符串数组:输入一个无空白的字符串,放置到数组中。 提取操作符 :滤掉前导空白字符,遇见空白字符结束 (即:不含空白字符的字符串-变量) cin.getline(字符串数组,数组大小):键盘输

11、入一个以 ENTER键结束 /的字符串,放置到数组中。 字符串存放的位置字符数组的元素个数(字符串的最大长度) 例:char s81; cin .geli ne(s,81); 输入的字符串最大长度:? 80 使用typedef语句定义数组类型 已有类型的别名定义 typedef数据类型类型别名; 例:typedef int in Data; typedef char chData; typedef char* chPo in ter; 例:使用类型别名 in Data x,y; in Data a5=1,2,3,4,5; chData b1,b2=a; chData c10=char data; chPo in ter p=0; 一维数组类型的别

温馨提示

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

评论

0/150

提交评论