




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1C语言程序设计数组指针与字符串语言程序设计数组指针与字符串2 数 组第1页/共88页3 数 组第2页/共88页4 数 组第3页/共88页5 数 组第4页/共88页6 数 组第5页/共88页7 数 组#includeusing namespace std;class Point public: Point(); Point(); ;Point:Point() coutDefault Constructor called.endl;Point:Point() coutDestructor called.endl;void main() Point A2; 第6页/共88页8声明声明 例:例
2、:int i;int i; int int * *i_pointer; i_pointer; 概念概念 指针:内存地址,用于间接访问内存单元指针:内存地址,用于间接访问内存单元 指针变量:用于存放地址的变量指针变量:用于存放地址的变量20003i_pointer*i_pointeri2000引用引用 i_pointer =&i;=&i; i=3; i=3; * *i_pointer=3;i_pointer=3; 指 针第7页/共88页9l 语法形式语法形式 存储类型存储类型 数据类型数据类型 * *指针名初始地址;指针名初始地址; 例:例:int a , int a , * *pa=&a;pa
3、=&a;l 注意事项注意事项用变量地址作为初值时,该变量必须在指针初始化之前已说明过,且变量类型应与指针类型一致。用变量地址作为初值时,该变量必须在指针初始化之前已说明过,且变量类型应与指针类型一致。可以用一个已赋初值的指针去初始化另一个指针变量。可以用一个已赋初值的指针去初始化另一个指针变量。不要用一个内部不要用一个内部autoauto变量去初始化变量去初始化staticstatic指针。指针。 指 针第8页/共88页10 指 针第9页/共88页11 指 针cout*pv=*(int *)pvendl;第10页/共88页12 指 针第11页/共88页papa-2pa-1pa+1pa+2pa+
4、3*(pa-2)*pa*(pa+1)*(pa+2)*(pa+3)*(pa-1)short short * *papa13第12页/共88页pb-1pbpb+1pb+2*(pb-1)*pb*(pb+1)*(pb+2)long long * *pbpb14第13页/共88页15 指 针第14页/共88页16 指 针第15页/共88页17 指 针第16页/共88页18 指 针第17页/共88页输出结果为:输出结果为:Matrix test:Matrix test:1 0 01 0 00 1 00 1 00 0 10 0 119 指 针也可以写成:也可以写成: p_lineij或或*(*(p_line
5、+i)+j)*(p_linei+j)第18页/共88页20 指 针可以写成可以写成:*(p1i+j)或或p1ij第19页/共88页21 指 针在在C+中这种赋值是中这种赋值是错误错误的。的。第20页/共88页22 指针与函数第21页/共88页23 指针与函数第22页/共88页24 指针与函数第23页/共88页25 指针与函数第24页/共88页26 指针与函数第25页/共88页27第26页/共88页28第27页/共88页29 指针与函数第28页/共88页30 指针与函数第29页/共88页31 指针与函数第30页/共88页32 指针与函数第31页/共88页33 指针与函数第32页/共88页34 指
6、针与函数第33页/共88页35 指针与函数第34页/共88页36 指 针第35页/共88页37 指 针#includeusing namespace std;void main() int i=13; int const *p=&i; i+; (*p)+; coutiends*pX=X; this-Y=Y; coutGetX()endsGetY()endl; coutGetX()endsGetY(); coutendl; cout(*this).GetX()ends(*this).GetY(); coutendl; this 指 针效果是一样的,在类的成员函数中,可以使用效果是一样的,在类的成
7、员函数中,可以使用 this 指针访问类中其它成员函数。指针访问类中其它成员函数。第45页/共88页47 指 针第46页/共88页48 指 针第47页/共88页49 指 针第48页/共88页50 指 针void main() Point A(4,5); Point *p1=&A; int Point:*p_num; p_num=&Point:X; coutA.Xends; coutA.*p_numends; coutXends; cout*p_numendl; int (Point:*p_GetX)(); p_GetX=Point:GetX; coutA.GetX()ends; cout(A.
8、*p_GetX)()ends; coutGetX()ends; cout*p_GetX)()endl; 指向数据成员的指针指向数据成员的指针指向函数成员的指针指向函数成员的指针数据成员指针赋值数据成员指针赋值函数成员指针赋值函数成员指针赋值指向对象的指针指向对象的指针第49页/共88页51 指 针第50页/共88页52成员 指 针第51页/共88页53 指 针P184 例例6-14第52页/共88页54 指 针第53页/共88页55 指 针P185 例例6-15第54页/共88页56 指 针第55页/共88页57 动态存储分配第56页/共88页58动态申请内存操作符动态申请内存操作符 new
9、动态存储分配int *point=new int(2);等价于:等价于:int *point;point=new int(2);注:注: 动态分配了用于存放动态分配了用于存放int类型数据的内存空间,同时在此空间中存入数值类型数据的内存空间,同时在此空间中存入数值2。 如果不指定初值可以写成:如果不指定初值可以写成:point=new int;或或point =new int();第57页/共88页59动态申请内存操作符动态申请内存操作符 new 动态存储分配Line *line=new Line;表示:表示: 调用默认的构造函数。调用默认的构造函数。 默认的构造函数不存在则调用带有默认形参值
10、的构造函数。默认的构造函数不存在则调用带有默认形参值的构造函数。 上述两种函数都不存在,则创建动态存储区失败。上述两种函数都不存在,则创建动态存储区失败。第58页/共88页60 动态存储分配第59页/共88页61 动态存储分配动态创建对象动态创建对象第60页/共88页运行结果:运行结果:Step One:Step One:Default Constructor called.Default Constructor called.Destructor called.Destructor called.Step Two:Step Two:Constructor called.Constructor
11、 called.Destructor called.Destructor called.62 动态存储分配第61页/共88页63 动态存储分配第62页/共88页64 动态存储分配第63页/共88页65 动态存储分配第64页/共88页66 动态存储分配第65页/共88页67 动态存储分配第66页/共88页68 动态存储分配第67页/共88页char (*fp)3;fpfp+1fp00fp01fp02fp10fp11fp1269第68页/共88页70 动态存储分配第69页/共88页71 动态存储分配第70页/共88页72 动态存储分配第71页/共88页73 动态存储分配第72页/共88页74浅拷贝
12、与深拷贝第73页/共88页75#includeusing namespace std;class Copypublic: Copy() p=new int(2); void setP() *p=14; int show() return *p; private: int *p;void main()Copy c1; Copy c2(c1); coutc1=c1.show()ends; coutc2=c2.show()endl; c1.setP(); coutc1=c1.show()ends; coutc2=c2.show()endl;第74页/共88页76#includeusing names
13、pace std;class Copypublic: Copy() p=new int(2); Copy(Copy &c); void setP() *p=14; int show() return *p; private: int *p;Copy:Copy(Copy &c) p=new int(4);void main()Copy c1; Copy c2(c1); coutc1=c1.show()ends; coutc2=c2.show()endl; c1.setP(); coutc1=c1.show()ends; coutc2=c2.show()str1str2str3;运行时输入数据: How are you?内存中变量状态如下: str1: H o w 0 str2: a r e 0 str3: y o u ? 079 字符串第78页/共88页若改为: char str13; cinstr;运行时输入数据: How are you?内存中变量 str 内容如下: str: H o w 0 80 字符串第79页/共88页81 字符串第80页/共88页82 字符串第81页/共88页83 字符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供应链质量管理的实施策略试题及答案
- 突变与自然选择的关系试题及答案
- 国际物流市场竞争分析试题与答案
- 物流师考试经历分享试题及答案
- 细胞自噬的过程与生物学意义试题及答案
- 湖南省衡阳市八中2025年高三冲刺模拟化学试卷含解析
- 2024年CPMM学习案例试题及答案
- SCMP考试2024年知识图谱与试题及答案
- 针对不同背景的2024年CPMM试题及答案
- CPSM考试开卷与闭卷对比及试题及答案
- EIM Book 1 Unit 8 We're going on holiday单元知识要点
- 机加工日语词汇
- 核舟记测模拟试题及答案
- MySQL中文参考手册MySQL学习教程
- 集群企业住所托管服务协议书
- YS/T 1028.3-2015磷酸铁锂化学分析方法第3部分:磷量的测定磷钼酸喹啉称量法
- GB/T 39305-2020再生水水质氟、氯、亚硝酸根、硝酸根、硫酸根的测定离子色谱法
- 中小企业智能制造数字转型
- GB/T 26159-2010中国未成年人手部尺寸分型
- GB/T 13029.3-2010船用电缆通信电缆和射频电缆的选择和敷设
- GB/T 10798-2001热塑性塑料管材通用壁厚表
评论
0/150
提交评论