c语言中指针用法PPT.ppt

c语言中指针用法PPT.ppt

ID:51052025

大小:657.50 KB

页数:82页

时间:2020-03-18

c语言中指针用法PPT.ppt_第1页
c语言中指针用法PPT.ppt_第2页
c语言中指针用法PPT.ppt_第3页
c语言中指针用法PPT.ppt_第4页
c语言中指针用法PPT.ppt_第5页
资源描述:

《c语言中指针用法PPT.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六章指针指针是C++提供的一种颇具特色的数据类型,允许直接获取和操纵数据地址,实现动态存储分配。指针是C和C++的精华所在,也是C和C++的一个十分重要的概念。主要内容:指针的概念;指针数据对象及其定义;指针运算;指针数据对象的引用;重点:指针的概念利用指针实现动态存储分配(动态数组)指针运算;课堂时数:6—7学时内存操作函数和动态存储分配。上机时数:2—3学时课外上机时数:2—3学时6.1指针的概念1.什么叫指针一个数据对象的内存地址称为该数据对象的指针。指针可以表示各种数据对象,例如:简单变量、数组、数组元素、结构体甚至函数。换句话说:指针具有不同

2、的类型,可以指向不同的数据存储体。int*point1,a=123,b=567;doublepoint2[20];……point1=&a;point1和point2都是指针;point1a变量a的地址123例6-1分析下面的变量说明语句和赋值表达式:执行point1=&a操作后,point1存放变量a的地址,它指向变量a的存储空间。如下图所示:注意:指针中的内容是可以动态改变的,例如point1原来指向变量a,当执行了point1=&b操作后,即指向变量b:point2双精度型数组的存储空间point2数组的首地址point1b变量b的地址567poin

3、t2是数组名,又是指向数组第一个元素的指针,如下图所示:2.指针的作用(1)实现复杂的数据结构,例如数组、链表、队列和堆栈等;(2)能方便地表示和处理字符串;例如:chars1[20]={‘a’,’b’,’’},*sp1;sp1=s1;//s1和sp1都代表字符串“ab”(3)实现动态存储分配;对于程序中所包含的大存储量的数据对象,一般用预先定义的指针变量来表示,当实际使用时才临时申请实际的存储空间,使用完毕立即释放。(4)在函数之间进行数据的双向传递。指针变量所占的内存空间与所表示的数据对象的存储空间相比实在是微乎其微,因为它只是用来存放对应空间的

4、首地址,而不是存放数据本身,所以可以节省大量的存储空间,提高内存空间的利用率。将形参定义成指针类型,对应的实参必须是某个数据对象的地址或首地址,也即采用传地址的方式,这样就可以实现数据的双向传递。3.指针类型指针类型属于非标准类型,其取值是所表示的数据对象的内存地址,所以其值域是内存地址集。指针类型用来定义各种类型的指针变量,例如整型指针、字符指针等等。其语法如下:<类型标识符>*类型标识符,是指针类型的基类型,也即指针所指向的数据对象的类型。*,作用在各个标识符上,表示该标识符所标识的变量是指针变量。例6-2分析说明语句:int*a,b;。该语句既定义

5、了整型指针int*,同时又声明了整型指针变量a和整型变量b。指针类型定义和指针变量声明是同时进行的。6.2声明指针变量1.指针变量用变量说明语句来声明指针变量,其语法如下:解释:<类型标识符>*<标识符1>,*<标识符2>,……,*<标识符n>;类型标识符:用来指明指针类型的基类型,可以是基本类型,例如int,char,double等等,也可以是结构类型,例如数组、结构体、文件等等。标识符:标识指针数据对象,被标识的对象可以是基本变量、数组、结构体变量、函数等。所谓指针变量就是类型为指针类型的变量。2.指针变量的作用域指针变量也有全局和局部之分:在函数外

6、部声明的指针变量是全局的;在函数内部声明的指针变量是局部于该函数的。3.实例例6-4分析和比较语句chars1,s2[100],*s3,*s4[100];所声明的四种不同数据对象。int*x,*y,z;例6-3在函数中声明三个变量x,y,z,其中x、y是整型指针,z是整型变量,对应的语句如下:上面的语句定义了四个变量:例如,执行如下的操作序列后,则s2等价于s3:s1是字符型变量,用来存放单个字符;s2是字符数组,最多可以存放100个字符;s3是字符型指针变量,用来存放字符数据的内存地址或字符串的首地址。如果其中存放的是字符串的首地址,则它指向一个字符串

7、,或者说它代表一个字符串;strcpy(s2,"abcd");s3=s2;s2,s3两者的关系如下图所示:s2s3abcds4是字符型指针数组,最多可以存放100个字符串的指针(地址),也即每一个元素都可能指向一个字符串,如下图所示:4.指针变量的初始化可以看出,一个一维字符指针数组可以表示一个n行m列的的文本,它是特殊的二维字符数组。我们可以在定义指针变量的同时给其赋初值,指针的初值是某个数据对象的内存地址,也即使得该指针指向对应的数据对象。这一过程也称为建立指针。例如:inti=10;int*iptr=&i;上面的说明语句在声明指针变量iptr的同时

8、即赋予初值,其初值是i的地址。也即iptr指向整型变量i,对于iptr的引用(可

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。