《C++》课件项目5 探索数据之家.ppt

上传人(卖家):momomo 文档编号:5787154 上传时间:2023-05-09 格式:PPT 页数:27 大小:2.37MB
下载 相关 举报
《C++》课件项目5 探索数据之家.ppt_第1页
第1页 / 共27页
《C++》课件项目5 探索数据之家.ppt_第2页
第2页 / 共27页
《C++》课件项目5 探索数据之家.ppt_第3页
第3页 / 共27页
《C++》课件项目5 探索数据之家.ppt_第4页
第4页 / 共27页
《C++》课件项目5 探索数据之家.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、项目5 探索数据之家课件目录5.1 项目情景15.2 相关知识25.3 项目解决35.4 知识拓展45.1 项目情景 通过变量的名字可以访问数据,而变量除了名字、值两个要素,还有一个在内存中的地址要素。可以用地址来访问变量,能不能将内存中不连续的单元连续起来呢?用什么来保存地址呢?该项目将解决以上问题,带领大家认识神奇的指针。回主目录回主目录5.2 相关知识5.2.1 指针的概念5.2.2 指针变量的定义和初始化5.2.3 指针运算回主目录回主目录5.2.1 指针概念 指针其实就是在内存中的地址,它可能是变量的地址,也可能是函数的入口地址。如果指针变量存储的地址是变量的地址,称该指针为变量的指

2、针(或变量指针);如果指针变量存储的地址是函数的入口地址,称该指针为函数的指针(或函数指针)。回子目录回子目录5.2.2 指针变量的定义和初始1指针变量的定义:数据类型 *指针变量名;例如:int*p;指针变量只能指向定义时所规定类型的变量;指针变量定义后,变量值不确定,使用时必须先进行赋值。回子目录回子目录5.2.2 指针变量的定义和初始2指针变量的初始化:数据类型*指针变量名=&变量名;例如:int x;/定义普通变量x int*p=&x;/定义指针变量p并初始化 说明:引用不确定的指针变量有一定的危险性。一个指针变量只能指向同一类型的变量,这里,指针变量p只能指向整型变量。回子目录回子目

3、录5.2.2 指针变量的定义和初始 void main()float x=3.1415f,y=2.0f;float*p=&x,*q=&y,*t;cout *p endl;cout *q endl;cout *t endl;回子目录回子目录5.2.3 指针运算指针运算1、间接访问运算符*和取地址运算符&间接访问运算符*运算符作用在指针(地址)上,代表该指针所指向的存储单元(及其值),实现间接访问。例如:int x=12,y,*p;/定义变量x和指针变量p p=&x;/使 p指向x y=*p;/间接引用x,把指针p指向的变量x的值赋给y,y的值为12P1000 x=12y=*p10001004回子

4、目录回子目录5.2.3 指针运算指针运算取地址运算符&取地址运算符&,被用在一个指针对象前面,运算 结果是该指针对象的地址。例如:int x=12,*p;p=&x;2、指针变量的运算 赋值运算(=)算术运算(+、-、+、-)加赋值(+=)和减赋值(-=)关系运算(=、!=、=)回子目录回子目录5.3 项目解决项目解决struct Studentstring name;int age;void main()int a,*p;float b,*q;char c,*ch;Student st,*t;p=&a;/指针指向整数aq=&b;/指针指向实数bch=&c;/指针指向字符ch回子目录回子目录5.

5、3 项目解决项目解决t=&st;/指针指向结构体类型变量cout*p;cout*q;cout*ch;cout学生姓名和年龄:t-namet-age;/使用指针访问结构体成员couta=aendl;coutb=bendl;coutc=cendl;cout学生姓名:name学生年龄:ageendl;回主目录回主目录5.4 知识拓展知识拓展 5.4.1 指针与一维数组5.4.2 指针与二维数组5.4.3 指针5.4.4 指针作为函数参数与字符串5.4.5 指针与引用回主目录回主目录5.4.1 指针与一维数组指针与一维数组一般数组元素的形成:编译程序将其转换成:*(+)例:通过指针访问一维数组元素 i

6、nt*p;int k8=1,3,6,7,10,11,13,15;for(p=k;pk+8;p+)cout*pt;coutendl;回子目录回子目录5.4.2 指针与二维数组指针与二维数组 用二维数组的地址访问数组元素,二维数组n xy的元素nij的引用可以用以下5种方法:nij *(ni+j)*(*(n+i)+j)(*(n+i)j *(&n00+m*i+j)可以使用一个以数组元素类型为基类型的指针,依次引用二维数组的所有元素,因为这些元素在内存中按顺序连续存放。例:使用指针变量访问二维数组元素 int n34=21,28,17,23,32,5,18,29,15,20,9,58;int*p4;*

7、p=n0;cout*p“”;/采用指针方式访问p所指向的二维数组回子目录回子目录5.4.3指针与字符串指针与字符串 字符串是存放在字符数组中的,对字符数组中的字符逐个处理时,指针与数组之间的关系也适用于字符数组,用指针处理字符串更加的方便。字符型指针变量可以指向字符型常量、字符型变量、字符串常量以及字符数组。可以使用指针常量或指针变量处理字符串。使用指针变量处理字符串时,一定要使指针变量有确定的指向,否则系统不知指针变量指向哪一个存储单元,执行时就会出现意想不到的错误,甚至对系统造成严重危害。回子目录回子目录5.4.3指针与字符串指针与字符串 1.字符指针的定义及初始化字符指针的定义及初始化

8、字符指针定义的格式为:char*变量名;例如:char*pstr;字符指针的初始化可以有下列几种方式:(1)用字符数组名初始化)用字符数组名初始化 char ch=”welcome to Dezhou!”;回子目录回子目录5.4.3指针与字符串指针与字符串 char*pstr=ch;(2)用字符串初始化)用字符串初始化 char*pstr=”welcome to Dezhou!”用字符串“welcome to Dezhou!”的首地址初始化pstr指针变量,即pstr指向字符串“welcome to Dezhou!”的首地址。(3)用赋值运算使指针指向一个字符串)用赋值运算使指针指向一个字符串

9、char*pstr;pstr=”welcome to Dezhou!”这种方法与用字符串初始化指针完全等价。回子目录回子目录5.4.3指针与字符串指针与字符串2.使用字符指针处理字符串和字符数组使用字符指针处理字符串和字符数组例例5.6 用指针实现字符串复制用指针实现字符串复制*ps1=welcome to Dezhou!,*ps2;char s160,s260;strcpy(s1,ps1);ps2=s2;while(*ps1!=0)*ps2=*ps1;ps1+;ps2+;*ps2=0;coutns1=s1endl;coutns2=s2endl;getchar();回子目录回子目录3字符指针变

10、量与字符数组的区别字符指针变量与字符数组的区别例如:char*ps=”welcome to Dezhou!”;char s=”welcome to Dezhou!”;s由若干字符元素组成,每个si存放一个字符;而ps中存放的是字符串首地址。5.4.3指针与字符串指针与字符串回子目录回子目录5.4.4 指针作为函数参数指针作为函数参数 指针作为函数参数的传值方式称为地址传递。当需要通过函数改变变量的值时,可以使用指针作为函数参数。指针作为函数的参数时,是以数据的地址作为实参调用一个函数,即参数传递的是地址。使用指针作为参数在函数间传递数据时要注意两点:(1)在主调函数中,要以变量的存储地址作为实

11、参来调用另一个函数。(2)被调用函数的形参必须是可以接受地址值的指针变量,而它的数据类型应与被传的数据类型相一致。回子目录回子目录5.4.4 指针作为函数参数指针作为函数参数 执行两个数的交换:void main()int a,b;int*p1=&a,*p2=&b;coutab;coutn交换之前a,b=a bendl;change(p1,p2);coutn交换之后a,b=a bendl;void change(int*m,int*n)int t;t=*m;*m=*n;*n=t;coutn函数中m,n=*m *nendl;回子目录回子目录5.4.5 指针与引用指针与引用1.引用类型2.引用作为

12、函数的参数回主目录回主目录5.4.5 指针与引用指针与引用1.引用类型引用类型 引用类型变量的定义格式为:数据类型&引用变量名=变量名;其中,字符“&”可以紧在数据类型之后,也可以紧放在引用变量名之前,或者用空格与二者分开。另外,被引用的变量必须是已定义的。例如:int number;/定义整型变量numberint&rdl=number;/定义引用变量rd1,rd1是number的引用回子目录回子目录5.4.5 指针与引用指针与引用void main()int number=20;/定义整型变量number并赋值为20 int&rdl=number;/定义引用变量rd1,rd1是number

13、的引用 cout”number=”numberendl;cout”rdl=”rdlendl;number+=32;/number重新赋值 cout”number=”numberendl;cout”rdl=”rdlendl;rdl+=64;/rd1重新赋值 cout”number=”numberendl;cout”rdl=”rdlendl;回子目录回子目录5.4.5 指针与引用指针与引用2.引用作为函数参数引用作为函数参数 引用可以作为函数的参数,建立函数参数的引用传递方式。引用传递实际上传递的是变量的地址,而不是变量本身。说明:(1)参数传递方式类似于指针,可读性更比指针传递强。(2)调用函数语法简单,与简单传值调用一样,但其功能却比传值方式强。回子目录回子目录END回子目录回子目录

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《C++》课件项目5 探索数据之家.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|