- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C4章复合数据类型
第4章 复合数据类型 4.1 数组 4.2 指针 4.3 结构体 4.4 自定义类型及枚举 4.5 引用 4.1 数组 数组基本概念 数组是同类型数据的有序集合。 集合中的每一个元素称为数组元素。 在数组中的每一个元素都具有一个序号(注意,在C++中此序号从0开始),称为下标。 数组中数组元素的个数称为数组的长度。 掌握一维和二维数组 4.1.1 数组的定义 格式: 类型说明符 数组名[第1维长度][第2维长 度]…[第n维长度]; 作用:定义一个n维数组。 类型说明符可以是任何一种数据类型,数组名为用户指定的任一合法C++标识符。 维数必须以常量或常量表达式的形式给出。 数组的维数超过1时即构成了多维数组,多维数组是数组的嵌套 。 理解:int a[10]; int b[3][4]; 4.1.2 数组的初始化 完全初始化。 要求初值列表中给定值的个数与数组长度相等,此时各数组元素按对应的位序被赋予给定的值。 如: int array[5]={1,2,3,4,5}; int array[ ]={1,2,3,4,5}; 部分初始化。 初值列表中值的个数小于数组长度,未给出的部分取默认值0。 如:int array[5]={1,2}; static型数组。 如给出初值列表则按列表中给定的值赋值,否则元素的默认值全部为0。 如:static int array[5]; 等价于static int array[5]={0,0,0,0,0}; 4.1.3 数组的使用 数组定义后,可以通过两种方式使用它,一是使用单个数组元素,二是使用整个数组。 1.数组元素的使用 数组元素通过下标来使用。 通过下标使用数组元素的方法为: 数组名 [下标表达式] 例4-2 计算并输出二维数组主对角线上元素之和。 #include iostream.h void main() { int i,j,array[][3]={1,2,3,4,5,6,7,8,9}; int sum=0; for(i=0;i3;i++) for(j=0;j3;j++) if(i==j) sum+=array[i][j]; coutsum is : sumendl; } 2. 数组的使用 数组还可以做为一个整体加以使用,格式为: 数组名 或 数组名[] 数组名实质上标识着数组在内存中存放的首地址,是一个地址常量,当需要传送大量同类型数据进行统一处理时,才以传地址的形式用数组名标识整个数组。 4.1.4 字符数组与字符串 字符数组,即数组中每一个元素都为字符型,是一种特殊类型数组,常被用来保存和处理字符串。 1. 字符串常量有隐含的结束符“\0”,因此其长度是串中字符个数加1。 如:char ss[5]=“Hello”; 是错误的 。 2. 以字符串常量为字符数组赋值,只允许出现在字符数组初始化时。 如:char ss1[6];ss1=“Hello”;是错误的。 3. 字符数组正确赋值后,可以使用整个数组来输出字符串。为什么?如: char ss[]=Hello World!; coutssendl; //输出的结果是Hello World! 操作字符串的库函数 , string.h 1. 字符串赋值 使用方法:strcpy(目标串,源串); 2. 字符串比较 使用方法:strcmp(字符串1,字符串2); 两个字符串相等结果为0,字符串1大于(按字符的ASCII编码为序)字符串2结果为大于0的数,字符串2大于字符串1结果为小于0的数。 3. 字符串连接 使用方法:strcat(字符串1, 字符串2); 返回字符串1的首地址,且字符串1被去掉末尾的结束符’\0’后接续了串2的内容。字符串1必须为字符数组。 4. 字符串求长度 使用方法:strlen(源串); 返回源串的有效字符个数(不包含结束符)。 4.2 指针 4.2.1 指针变量的定义 指针变量定义的格式为: 类型说明符 *指针变量名[=初始化]; 类型说明符是指该指针变量指向的变量所具有的类型。 “*”号表示这里定义的是一个指针类型的变量。 如: int *px; 定义了一个可以指向int型数据的指针变量px,它仅能用来存放int型数据的地址。 1. 内存分配 计算机中的内存是编址的。在程序编译或者运行的时候,系统开辟了一张表
您可能关注的文档
- 4章网络层的TCPIP协议.ppt
- 5单元TCPIP协议设置 123.ppt
- 5种方法让你的扫描清晰.doc
- 4章结构和AT89S51并行IO口工作原理.ppt
- 5章80C51单片机的串行接口技术.ppt
- 5章80C51汇编语言编程.ppt
- 2章。2.4种常用输入设备.ppt
- 5章_多媒体存储技术.ppt
- 5章。5.3数字声音与应用.ppt
- 5章__模拟控制和编程.ppt
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)