版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1第一页,共77页。2一维数组;n6通过指针类型的变量去操作二维数组;n7动态存储分配的概念及应用。第1页/共77页第二页,共77页。3(binling)去访问单一变量(binling);n6掌握通过指针类型的变量(binling)去操作一维数组;n7理解通过指针类型的变量(binling)去操作二维数组;n8理解动态存储分配的概念及应用。第2页/共77页第三页,共77页。4p=&a;第3页/共77页第四页,共77页。5编程技巧:在源程序清单中,我们可以看到在操作变量a时,用了不同的两种方法(fngf),一种就是用我们很习惯的变量名的方式操作,另一种就是本章要学习的新概念指针的方式操作。
2、第4页/共77页第五页,共77页。6第5页/共77页第六页,共77页。7第6页/共77页第七页,共77页。8内存单元内存单元内存单元内存单元内存单元内存单元2000200120023000地址编号地址编号内存储器内存储器363004内 存 单内 存 单元元的地址的地址内 存 单内 存 单元元的内容的内容int i=3;int j=6;第7页/共77页第八页,共77页。9量内容。例如:例5.1.1中,用语句:couta的值表示方法1:aendl;来输出变量a的值。第8页/共77页第九页,共77页。10用地址来访问内存单元。例如,在不同的函数之间传送大量数据时,如果不是传递变量值,而是只传递变量的
3、地址,就会减小开销,提高效率。如果是动态分配的内存单元,则根本就没有名称,这时只能通过地址访问。第9页/共77页第十页,共77页。11都有地址。C+ 规定:第10页/共77页第十一页,共77页。12第11页/共77页第十二页,共77页。13 定义语句中的“*”表示该变量为指针(zhzhn)变量。存储存储(cn ch)(cn ch)类型类型 数据类型数据类型 * *指针变量指针变量第12页/共77页第十三页,共77页。14第13页/共77页第十四页,共77页。15在定义指针变量的同时进行初始化赋值,一般格式如下:数据类型 *指针名初始地址;第14页/共77页第十五页,共77页。16例如(lr):
4、先定义:int *p;再用赋值语句:p=&x;第15页/共77页第十六页,共77页。17 int x;int *p;p=&x;变量的定义一定要在指针定义之前。第16页/共77页第十七页,共77页。18(ynx) void 的指针,该指针可以被赋予任何类型对象的地址。例如: void *general; int *point; int i; general=&i; point=( int *) general; 第17页/共77页第十八页,共77页。19第18页/共77页第十九页,共77页。202使用指针变量与使用一般变量一样,一定要先定义后使用,使用前,指针变量一定要有明确的指向,例如,int
5、 *p;,p=&x;明确指向变量x的地址。第19页/共77页第二十页,共77页。21第20页/共77页第二十一页,共77页。22操作(cozu)变量,例5.5.1中*p=*p+10;在原来的值3基础上加上10,与语句x=x+10;等价。4用*p输出值,即输出值为13。第21页/共77页第二十二页,共77页。23的内容,*在执行语句表示指针所指对象的内容。(2) p=&x; 将变量x的地址赋给指针变量p,一定要先定义x,然后才能将变量x的地址赋给指针变量p,p有明确(mngqu)的指向后才能操作。第22页/共77页第二十三页,共77页。24输出输出*p1、*p2的值的值输出输出*p2、*p1的值
6、的值 *p1*p2Y N用指针操作方式从键盘获取输入两个整数的值用指针操作方式从键盘获取输入两个整数的值定义两个整型变量,及操作它们的两个整型指针,定义两个整型变量,及操作它们的两个整型指针,并把两个整型变量的地址分别赋给两个整型指针并把两个整型变量的地址分别赋给两个整型指针第23页/共77页第二十四页,共77页。25第24页/共77页第二十五页,共77页。26为:*p1setw(4)*p2ai; / 数组名和下标(xi bio)来访问数组第27页/共77页第二十八页,共77页。29 第28页/共77页第二十九页,共77页。30第29页/共77页第三十页,共77页。31第30页/共77页第三十
7、一页,共77页。32指向下一个或前一个数据。例如(lr):y=*px+ 相当于y=*(px+) *和+优先级相同,自右向左结合第31页/共77页第三十二页,共77页。33素的内存单元pa-2pa-1pa+1pa+2pa+3*(pa-2)*pa*(pa+1)*(pa+2)*(pa+3)*(pa-1)short *papa第32页/共77页第三十三页,共77页。34第33页/共77页第三十四页,共77页。35第34页/共77页第三十五页,共77页。36 coutp1p2! endl; 第35页/共77页第三十六页,共77页。37第36页/共77页第三十七页,共77页。38第37页/共77页第三十八
8、页,共77页。392此外,指针变量还可以和零之间进行等于或不等于的关系运算。例如:p= =0或p!=0。第38页/共77页第三十九页,共77页。40for(i=0,j=N-1;ij;i+,j-)定义、输入初始数组的值定义、输入初始数组的值指针指向数组的首地址指针指向数组的首地址temp=*(p+i)*(p+i)=*(p+j)*(p+j)=temp输出交换后数组的值输出交换后数组的值第39页/共77页第四十页,共77页。41 for(p=a;p*p; 第40页/共77页第四十一页,共77页。42 p=a; for(i=0,j=10-1;ij;i+,j-) temp=*(p+i); *(p+i)=
9、*(p+j); *(p+j)=temp; for(p=a;pa+10;p+) coutsetw(4)*p; coutendl; return 0; 第41页/共77页第四十二页,共77页。433利用了两个变量i,j并赋初值后,用*(p+i)、*(p+j)分别取出数组中首尾元素的值进行交换,然后使i+、j- -分别再取出数组中第二个元素的值和倒数第二个元素的值进行交换,直到交换完毕,即条件ij 不成立。第42页/共77页第四十三页,共77页。44要插入的数8x=11*(t+p)&p=a+p 成立成立 *(t+1)=*t t- t=a+p;指针指向要插入的位置;指针指向要插入的位置 *t=x;插入
10、值;插入值 输出插入完成后的数组输出插入完成后的数组 第45页/共77页第四十六页,共77页。47第46页/共77页第四十七页,共77页。48 第47页/共77页第四十八页,共77页。49第48页/共77页第四十九页,共77页。50行同样的操作,直到不等于,就说明字符串末尾已经没有空格,操作完成,需要给字符串末尾加上结束标志0。第49页/共77页第五十页,共77页。51定义定义string s1表示字符串,定义表示字符串,定义char型指针变量型指针变量*p操作操作字符串,定义操作中用到的变量字符串,定义操作中用到的变量n, j 输入含有末尾空格的字符串输入含有末尾空格的字符串 找到末尾字符:
11、找到末尾字符:n=s1.size( ); j=n-1; 指针变量指针变量*p赋初值:赋初值:p=&s10; 当当 while(*(p+j)= =空格空格) j-; 加字符串结束标志加字符串结束标志“0” 输出删除末尾空格后的字符串输出删除末尾空格后的字符串第50页/共77页第五十一页,共77页。52第51页/共77页第五十二页,共77页。53第52页/共77页第五十三页,共77页。54n int d,e,f=0,*pa,*pb,*pc;n cout输入数组a中元素的个数:d;第53页/共77页第五十四页,共77页。55for(pb=b;pb*pb;for(pa=a,pc=c;paa+d;pa+
12、) for(pb=b;pbb+e;pb+)第54页/共77页第五十五页,共77页。56 coutsetw(3)e;cout输入(shr)数组b的e个元素:endl;for(pb=b;pb*pb;第57页/共77页第五十八页,共77页。59cout交集c的各个(gg)元素依次为:endl;for (pc=c;pcc+f;pc+) coutsetw(3)*pc;第58页/共77页第五十九页,共77页。60void main()int a34=1,2,3,4,5,6,7,8,9,10,11,12第59页/共77页第六十页,共77页。61第60页/共77页第六十一页,共77页。62pi=ai;第61页
13、/共77页第六十二页,共77页。63换成一维数组来存储的,是按行方式存放的。第62页/共77页第六十三页,共77页。64量“移动”来操作具体的数组元素。 定义指针数组使用数组元素,指针数组就是数组中每个元素是指针,用它来指向一维数组。第63页/共77页第六十四页,共77页。65第64页/共77页第六十五页,共77页。66for(j=0;j*(pi+j);第65页/共77页第六十六页,共77页。67第66页/共77页第六十七页,共77页。68分配。第67页/共77页第六十八页,共77页。69第68页/共77页第六十九页,共77页。70第69页/共77页第七十页,共77页。71第70页/共77页第七十一页,共77页。72n int &refi=i; /refi是i的别名n例:int *p,i=3;n p=&i; /执行语句第71页/共77页第七十二页,共77页。73ncoutx=xy=yendl; n第72页/共
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有关幼儿园的小班月工作计划总结计划
- 2024年物流合作保险法律保障详尽协议版B版
- 买卖合同锦集六篇
- 2024年营养强化剂项目深度研究分析报告
- 服装销售店长工作计划
- 九年级计划作文600字
- 家长会发言稿集锦15篇
- 管理类实习经验报告毕业生
- 一周工作计划模板
- 年产12000吨十二烷基苯磺酸钠(浓缩洗衣粉)提升改造项目环评报告表
- 2024年全国《国防和兵役》理论知识竞赛试题库与答案
- 企业知识产权保护策略及实施方法研究报告
- 2024年07月11026经济学(本)期末试题答案
- 2024年中小企业股权融资合同3篇
- 2024年01月11289中国当代文学专题期末试题答案
- 2024年秋季生物教研组工作计划
- 2024年云南高中学业水平合格考历史试卷真题(含答案详解)
- 2025年董事长年会发言稿范文
- 医院廉洁购销合同
- 车间设备线路安装方案
- 检验科各专业组上岗轮岗培训考核制度全6页
评论
0/150
提交评论