第8章指针.ppt

上传人:s****8 文档编号:68701752 上传时间:2022-12-29 格式:PPT 页数:16 大小:575.50KB
返回 下载 相关 举报
第8章指针.ppt_第1页
第1页 / 共16页
第8章指针.ppt_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《第8章指针.ppt》由会员分享,可在线阅读,更多相关《第8章指针.ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、融智技术学院融智技术学院第8章 指 针杨章伟杨章伟e-mail:1-2融智技术学院融智技术学院课程内容安排课程内容安排指针概述指针概述 指针的运算指针的运算 指针与数组指针与数组 指针与函数指针与函数 指针与字符串指针与字符串 二级指针二级指针 小结小结 习题习题 1-3融智技术学院融智技术学院指针概述指针概述 简单来说,指针是一个地址,其指向存储某一个数据的存储地简单来说,指针是一个地址,其指向存储某一个数据的存储地址。此外,还有一个指针变量的概念,指针变量是一种特殊性址。此外,还有一个指针变量的概念,指针变量是一种特殊性质的变量。指针变量是把地址存放在一个变量中,然后通过先质的变量。指针变

2、量是把地址存放在一个变量中,然后通过先找出地址变量中的值(一个地址),再由此地址找到最终要访找出地址变量中的值(一个地址),再由此地址找到最终要访问的变量的方法,这就是指针变量及其访问方法,而地址变量问的变量的方法,这就是指针变量及其访问方法,而地址变量就是指针。就是指针。对于指针我们可以这样理解,比如一个人要到某地去,但不认对于指针我们可以这样理解,比如一个人要到某地去,但不认识路,于是去问交警。然后交警把该地方的地址写在了一张纸识路,于是去问交警。然后交警把该地方的地址写在了一张纸上,并且给了该问路人。那么交警写的地址就是指针,指向要上,并且给了该问路人。那么交警写的地址就是指针,指向要去

3、的地址,而那张纸就是指针变量,用于存储指针。去的地址,而那张纸就是指针变量,用于存储指针。1-4融智技术学院融智技术学院定义指针定义指针 指针是一个变量,在程序中使用时,必须先声明,后使用。指针是一个变量,在程序中使用时,必须先声明,后使用。在指针声明的同时也可以进行初始化。指针的定义指出了在指针声明的同时也可以进行初始化。指针的定义指出了指针的存储类型和数据类型,定义的语法形式如下:指针的存储类型和数据类型,定义的语法形式如下:存储类型名存储类型名 数据类型数据类型 *指针变量名指针变量名定义了一个指针后,在使用此指针前,必须首先给它赋一个定义了一个指针后,在使用此指针前,必须首先给它赋一个

4、合法的值。否则,程序中对指针的使用就有可能导致系统合法的值。否则,程序中对指针的使用就有可能导致系统崩溃。可以在定义指针的同时通过初始化来给指针赋值,崩溃。可以在定义指针的同时通过初始化来给指针赋值,也可以在使用之前给指针赋值。指针初始化的一般形式如也可以在使用之前给指针赋值。指针初始化的一般形式如下:下:存储类型存储类型 数据类型数据类型*指针名指针名=初始地址值初始地址值;1-5融智技术学院融智技术学院指针的运算指针的运算 指针运算是以指针变量所持有的地址值为运算量进行的运算。指针运算是以指针变量所持有的地址值为运算量进行的运算。因此,指针运算的实质是地址的计算。由于指针是持有地因此,指针

5、运算的实质是地址的计算。由于指针是持有地址量的变量这一特性,指针的运算与普通变量的运算在种址量的变量这一特性,指针的运算与普通变量的运算在种类上和意义上都是不同的。指针运算的种类是有限的,它类上和意义上都是不同的。指针运算的种类是有限的,它只能进行取地址和取值运算、算术运算、关系运算和赋值只能进行取地址和取值运算、算术运算、关系运算和赋值运算。运算。如果说明了一个指针,并使其值为某个变量的地址,则可以如果说明了一个指针,并使其值为某个变量的地址,则可以通过这个指针间接地访问在这个地址中存储的值。经过上通过这个指针间接地访问在这个地址中存储的值。经过上面部分的学习我们知道,在面部分的学习我们知道

6、,在C+语言中有两个有关指针的语言中有两个有关指针的特别运算符。特别运算符。&运算符:为取地址运算符,运算符:为取地址运算符,&x的值为的值为x的地址。的地址。*运算符:指针运算符,或指向运算符,也称间接运算符,运算符:指针运算符,或指向运算符,也称间接运算符,*p代表代表p所指向的变量。所指向的变量。1-6融智技术学院融智技术学院【范例范例8-3】指针的算术运算指针的算术运算 该该范范例例定定义义了了2个个指指向向数数组组的的指指针针,用用以以完完成成指指针针与与整整数数的的相加运算、指针的加相加运算、指针的加1减减1运算和指针之间的相减运算运算和指针之间的相减运算 1-7融智技术学院融智技

7、术学院字符串字符串 在现实世界中,许多值都需要使用一串字符来表示,这就是程在现实世界中,许多值都需要使用一串字符来表示,这就是程序设计语言中所说的字符串。在许多程序设计语言中,字符串序设计语言中所说的字符串。在许多程序设计语言中,字符串作为一种基本的数据类型。在作为一种基本的数据类型。在C+中,字符串可以通过两种方中,字符串可以通过两种方式表示:传统字符串和字符数组。式表示:传统字符串和字符数组。字符串是字符串是C+中应用广泛的一个数据类型,例如,下面语句定中应用广泛的一个数据类型,例如,下面语句定义了两个字符串:义了两个字符串:char ch1=“Welcome”char ch2=“to C

8、hina”由于字符串的重要性,许多编程语言都提供了关于字符串处理由于字符串的重要性,许多编程语言都提供了关于字符串处理的一些函数,的一些函数,C+也是如此。也是如此。C+的字符串标准函数的原型在的字符串标准函数的原型在头文件头文件string.h中中 1-8融智技术学院融智技术学院指针与数组指针与数组 指针在数组中使用较为频繁,代码示例中就定义过指向数组的指针,如代码8-3中定义的pa和pb指针就分别指向数组的第一个元素和最后一个元素。事实上,数组名表示的是该数组的首地址。要访问或使用一个数组元素,可以用三种不同的方法:要访问或使用一个数组元素,可以用三种不同的方法:下标法、地址法,还有一种是

9、指针法。下标法、地址法,还有一种是指针法。1-9融智技术学院融智技术学院指针与函数指针与函数 指针作为函数参数指针作为函数参数:如果函数的某个参数是指针,对如果函数的某个参数是指针,对这个函数的调用就是传址调用,也就是使实参指针和形这个函数的调用就是传址调用,也就是使实参指针和形参指针变量指向同一内存地址。在被调用函数的运行过参指针变量指向同一内存地址。在被调用函数的运行过程中,对形参指针所指向的地址中内容的改变也会影响程中,对形参指针所指向的地址中内容的改变也会影响实参。实参。指针型函数指针型函数:除了除了void类型的函数之外,函数在调用类型的函数之外,函数在调用结束后都会有返回值,指针同

10、样也可以作为函数的返回结束后都会有返回值,指针同样也可以作为函数的返回值。当一个函数的返回值是指针类型时,这个函数就是值。当一个函数的返回值是指针类型时,这个函数就是指针型函数。指针型函数。函数指针:函数指针就是指向函数的指针。函数指针:函数指针就是指向函数的指针。1-10融智技术学院融智技术学院指针与字符串指针与字符串 C+中可以定义一个字符数组,实现字符串的存储,并通过中可以定义一个字符数组,实现字符串的存储,并通过数组下标来访问指定字符。事实上,数组下标来访问指定字符。事实上,C+还提供了另外一还提供了另外一种存储访问字符串的方法,即字符指针,定义一个字符指种存储访问字符串的方法,即字符

11、指针,定义一个字符指针,便可以通过该指针的指向来访问指定字符。针,便可以通过该指针的指向来访问指定字符。如果要通过指针访问一个字符串,可以将这个指针指向此字如果要通过指针访问一个字符串,可以将这个指针指向此字符串,并利用指针的加符串,并利用指针的加1、减、减1操作实现对各个字符的访操作实现对各个字符的访问。问。1-11融智技术学院融智技术学院【范例范例8-12】字符串指针的应用字符串指针的应用 该范例用字符指针访问字符串,并使用如上的函数对字符串该范例用字符指针访问字符串,并使用如上的函数对字符串进行字符串的连接、比较、赋值和计算长度操作进行字符串的连接、比较、赋值和计算长度操作。1-12融智

12、技术学院融智技术学院二级指针二级指针 由于指针是一个变量,在内存中占据一定的空间,并且具有由于指针是一个变量,在内存中占据一定的空间,并且具有一个地址,这个地址也可以利用指针来保存。因此,可以一个地址,这个地址也可以利用指针来保存。因此,可以声明一个指针来指向它,这个指针称为指向指针的指针,声明一个指针来指向它,这个指针称为指向指针的指针,也称为二级指针。一般来说,声明指向指针的指针的形式也称为二级指针。一般来说,声明指向指针的指针的形式如下:如下:存储类型存储类型 数据类型数据类型 *指针变量名指针变量名其中,参数说明如下:其中,参数说明如下:两个星号两个星号“*”表示二级指针。表示二级指针

13、。数据类型是指通过两次间接寻址后所访问的变量类型。数据类型是指通过两次间接寻址后所访问的变量类型。1-13融智技术学院融智技术学院【范例范例8-13】指向指针的指针的应用指向指针的指针的应用 该范例定义了一个指向指针的指针该范例定义了一个指向指针的指针pp,来看一下其输出,来看一下其输出。1-14融智技术学院融智技术学院本章主要介绍了本章主要介绍了C+中较为复杂的指针的基本内容。以前接中较为复杂的指针的基本内容。以前接触过触过C语言的读者应该知道,指针是语言的读者应该知道,指针是C语言中最难掌握的,语言中最难掌握的,也是最灵活的。本章一开始就通过一个示例介绍了指针的也是最灵活的。本章一开始就通

14、过一个示例介绍了指针的概念和作用,接下来主要介绍了指针的运算,包括通过指概念和作用,接下来主要介绍了指针的运算,包括通过指针取值(针取值(*)、取地址()、取地址(&)、指针的算术运算和关系运)、指针的算术运算和关系运算等。此外,本章重点介绍了指针的应用,主要包括指针算等。此外,本章重点介绍了指针的应用,主要包括指针在数组中的应用、在函数中的应用、在字符串中的应用和在数组中的应用、在函数中的应用、在字符串中的应用和指向指针的应用。最后,就动态内存分配和引用作了简要指向指针的应用。最后,就动态内存分配和引用作了简要介绍。介绍。小结小结 1-15融智技术学院融智技术学院1写出下列程序的运行结果。写出下列程序的运行结果。#include void main()int*p;int n=100;p=&n;coutn=nendl;cout*p=*pendl;2编编写写一一个个C+程程序序,接接收收从从键键盘盘输输入入的的10个个整整数数,用指针求这用指针求这10个数中的最大数、最小数和平均值。个数中的最大数、最小数和平均值。习题习题1-16融智技术学院融智技术学院习题习题3.以下程序的输出结果是以下程序的输出结果是?。#include void main()char s=ABCD;char*p;for(p=s;ps+4;p+)coutpendl;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁