C++ 第四章 复合数据类型
c++
第4章 复合数据类型4.1 数组 4.2 指针 4.3 结构体 4.4 自定义类型及枚举 4.5 引用
c++
4.1 数组
哈工大华德学院计算机系
数组基本概念 数组是同类型数据的有序集合。 集合中的每一个元素称为数组元素。 在数组中的每一个元素都具有一个序号(注意,在 C++中此序号从0开始),称为下标。 数组中数组元素的个数称为数组的长度。 掌握一维和二维数组
2
C++ 程序设计
c++
哈工大华德学院计算机系
4.1.1 数组的定义 格式:类型说明符 数组名[第1维长度][第2维长 度]…[第n维长度];
作用:定义一个n维数组。 类型说明符可以是任何一种数据类型,数组名为用户 指定的任一合法C++标识符。 维数必须以常量或常量表达式的形式给出。 数组的维数超过1时即构成了多维数组,多维数组是数 组的嵌套 。
3
C++ 程序设计
c++
哈工大华德学院计算机系
理解: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};
4
C++ 程序设计
c++
哈工大华德学院计算机系
部分初始化。 初值列表中值的个数小于数组长度,未给出的部分 取默认值0。 如:int array[5]={1,2}; static型数组。 如给出初值列表则按列表中给定的值赋值,否则元 素的默认值全部为0。 如:static int array[5]; 等价于static int array[5]={0,0,0,0,0};
5
C++ 程序设计
c++
哈工大华德学院计算机系
4.1.3 数组的使用 数组定义后,可以通过两种方式使用它,一是 使用单个数组元素,二是使用整个数组。 1.数组元素的使用 数组元素通过下标来使用。 通过下标使用数组元素的方法为:数组名 [下标表达式]
6
C++ 程序设计
c++
哈工大华德学院计算机系
例4-2 计算并输出二维数组主对角线上元素之和。 #include <iostream.h> 程序运行结果: void main() sum is:15 { int i,j,array[][3]={1,2,3,4,5,6,7,8,9}; int sum=0; for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j) sum+=array[i][j]; cout<<"sum is : "<<sum<<endl; }7C++ 程序设计
c++
哈工大华德学院计算机系
2. 数组的使用 数组还可以做为一个整体加以使用,格式为: 数组名 或 数组名[] 数组名实质上标识着数组在内存中存放的首地 址,是一个地址常量,当需要传送大量同类型数据 进行统一处理时,才以传地址的形式用数组名标识 整个数组。
8
C++ 程序设计
c++
哈工大华德学院计算机系
4.1.4 字符数组与字符串 字符数组,即数组中每一个元素都为字符型,是 一种特殊类型数组,常被用来保存和处理字符串。 1. 字符串常量有隐含的结束符“\0”,因此
其长度是串中 字符个数加1。 如:char ss[5]=“Hello”; 是错误的 。 2. 以字符串常量为字符数组赋值,只允许出现在字符数 组初始化时。 如:char ss1[6];ss1=“Hello”;是错误的。 3. 字符数组正确赋值后,可以使用整个数组来输出字符 串。为什么?如: char ss[]="Hello World!"; cout<<ss<<endl; //输出的结果是Hello World!9C++ 程序设计
c++
哈工大华德学院计算机系
操作字符串的库函数 , string.h 1. 字符串赋值 使用方法:strcpy(目标串,源串);
2. 字符串比较 使用方法:strcmp(字符串1,字符串2); 两个字符串相等结果为0,字符串1大于(按字符的 ASCII编码为序)字符串2结果为大于0的数,字符串2 大于字符串1结果为小于0的数。
10
C++ 程序设计
c++
哈工大华德学院计算机系
3. 字符串连接 使用方法:strcat(字符串1, 字符串2); 返回字符串1的首地址,且字符串1被去掉末尾的结束 符’\0’后接续了串2的内容。字符串1必须为字符数组。 4. 字符串求长度 使用方法:strlen(源串); 返回源串的有效字符个数(不包含结束符)。
11
C++ 程序设计
c++
4.2 指针
哈工大华德学院计算机系
4.2.1 指针变量的定义 指针变量定义的格式为: 类型说明符 *指针变量名[=初始化]; 类型说明符是指该指针变量指向的变量所具有的类型。 “*”号表示这里定义的是一个指针类型的变量。 如: int *px; 定义了一个可以指向int型数据的指针变量px,它 仅能用来存放int型数据的地址。
12
C++ 程序设计
c++
哈工大华德学院计算机系
1. 内存分配 计算机中的内存是编址的。在程序编译或者运行 的时候,系统开辟了一张表。每遇到一次声明语句都 会开辟一个内存空间,并在表中增加一行纪录。 2. 指针为访问内存空间提供了新的方式 在未引入指针之前,程序中对内存空间的访问是 通过变量名的方式,变量名即对它所在的内存空间的 一种抽象。指针则提供了更贴近本质、更快捷自由的 访问方式。
13
C++ 程序设计
c++
哈工大华德学院计算机系
4.2.2 *和&运算 1. *运算 在定义指针时“*”作为指针变量的标志,程序 中出现指针名前加*运算符,则表示“取得指针所指向 内存单元的内容”的运算。 如: double f=5,*p=&f;//*是标志 cout<<*p<<endl; //*是取内容运算,输出为5 2. &运算 “&”作为“取变量地址”的运算。与“*运算” 互逆。14C++ 程序设计
c++
哈工大华德学院计算机系
例4-6 *与&运算符的使用。 程序运行结果: a=10 #include <iostream.h> *pa=10 void main( ){ *(&a)=10 &a=0012FF7C int a=10; pa=0012FF7C int *pa; &(*pa)=0012FF7C pa=&a; cout<<"a="<<a<<"\n\t*pa="<<*pa<<"\n\t\t*(&a)="< <*(&a)<<endl; cout<<"&a="<<&a<<"\n\tpa="<<pa<<"\n\t\t&(*pa)= "<<&(*pa)<<en
dl; }15C++ 程序设计
c++
哈工大华德学院计算机系
4.2.3 指针的算术运算 指针可以进行4种算术运算(+,-,++,--)。 1. 指针与整数的加减运算(+,-) 指针 p加上或减去n,其意义是指针当前指向位置 的前方或后方第 n 个数据的地址。执行加减运算并不 改变指针的指向。 两个同类型的指针可以执行减“-”运算,结果是 两个指针之间相差多少个该类型的地址空间。 如: int a,b,c; int *pa=&a,*pb=&b,*pc=&c; 则pa-pb为1,pa-pc为2。 2. 指针自加一,自减一运算(++,--) 指针 p执行自加一或自减一,其意义是修改指针 指向到下一个或前一个数据。16C++ 程序设计
…… 此处隐藏:1450字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




