(3.2)--3.2 常指针及使用面向对象程序设计.ppt
-
资源ID:96638205
资源大小:2.56MB
全文页数:12页
- 资源格式: PPT
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
(3.2)--3.2 常指针及使用面向对象程序设计.ppt
常指针及使用C C+常指针及其使用常指针及其使用01内存数据访问方式电脑维修员眼中的内存电脑维修员眼中的内存程序员的视角程序员的视角操作系统抽象化操作系统抽象化01内存数据访问方式假设,已定义变量 int a=20;变量名访问:couta;指针访问:int*pa;pa=&a;*pa=*pa+1;coutpa*paendl;paa内存内存200012:FF780012:FF7C0012FF78pa:pa指向了变量a *pa表示指向的变量21直接直接访问间接接访问C C+常指针及其使用常指针及其使用02函数参数传递【例例】交换变量交换变量x,y的值。的值。#include include using namespace std;using namespace std;void Change(int void Change(int a,int int b)int int tmp;tmp;tmp=tmp=a;a =b;b =tmp=tmp;int main()int main()int int x=10,y=20;x=10,y=20;cout cout交换前:交换前:x=x=x,y=yendlx,y=yendl;Change Change(x x,y y););cout cout交换后:交换后:x=x,y=yendlx=x,y=yendl;return return 0 0;10 x20yabmain()Change()10202010(1)值传递:)值传递:C C+常指针及其使用常指针及其使用02函数参数传递【例例】交换变量交换变量x,y的值。的值。#include include using namespace std;using namespace std;void Change(int void Change(int*a,int int*b)int int tmp;tmp;tmp tmp=*a;*;*a =*b;*;*b =tmp=tmp;int main()int main()int int x=10,y=20;x=10,y=20;cout cout 交换前交换前:x=x,y=yendlx=x,y=yendl;ChangeChange(&x,&y);(&x,&y);cout cout交换交换后后:x=xx=x,y=yendly=yendl;return return 0;0;10 x20yabmain()Change()&x&y2010(2)地址传递)地址传递:C C+常指针及其使用常指针及其使用02函数参数传递(2)地址传递)地址传递:pstr内存内存&str0Hello!C C+常指针及其使用常指针及其使用int maxstr(string*p)int main()string str=“Hello!”;coutmaxstr(str)endl;return 0;Mconstp0=M;/写数据写数据coutp0;/读数据读数据HC C+常指针及其使用常指针及其使用指针和指针和const的关系比较复杂,可形成三种常指针:的关系比较复杂,可形成三种常指针:常量指针常量指针指针常量指针常量指向常量的常指针指向常量的常指针03常指针例例1:*p=11;x=11;p=&y;03常指针1:常量指针常量指针(即即指针指向指针指向的内容不可变)的内容不可变)C C+常指针及其使用常指针及其使用 int*p=&x;const或或int const*p=&x;const 类型名类型名*指针名指针名=初始化表达式初始化表达式或或 类型名类型名 const*指针名指针名=初始化表达式初始化表达式03常指针2:指针常量指针常量(即即指针变量的值不可变指针变量的值不可变)C C+常指针及其使用常指针及其使用类型名类型名*const 指针名指针名=初始化表达式初始化表达式例例2:int x=20,y;int*const p=&x;*p=11;/*p可变可变 p=&y;&x变量变量p变量变量x2011变量变量y03常指针3:指向指向常量的常常量的常指针指针C C+常指针及其使用常指针及其使用const类型名类型名*const 指针名指针名=初始化表达式初始化表达式例例2:int x=20,y;const int*const p=&x;*p=11;p=&y;03常指针C C+常指针及其使用常指针及其使用int maxstr(string*p )/字符串数组做参数字符串数组做参数 string temp;int k;k=0;/假定第假定第0个字符串最大个字符串最大 for(int j=1;j=4;j+)if(pkpj)/字符串比较字符串比较 k=j;return k;int main()string str=“Hello!”;int i;cout最大串为最大串为 strarraymaxstr(str)endl;return 0;const或或string const*p小结常指针指针函数参数传递