C++课件 第八章 指针和引用

C++课件 第八章 指针和引用

ID:44195743

大小:427.00 KB

页数:81页

时间:2019-10-19

C++课件 第八章 指针和引用_第1页
C++课件 第八章 指针和引用_第2页
C++课件 第八章 指针和引用_第3页
C++课件 第八章 指针和引用_第4页
C++课件 第八章 指针和引用_第5页
资源描述:

《C++课件 第八章 指针和引用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第章指针和引用概述指针是C++语言的重要概念,利用指针可以高效而简洁的处理数据,有些操作不借用指针是无法完成的(如直接访问内存地址、动态分配内存)。因此指针成为灵活编程的重要工具。但万事有利就有弊,在程序中不加节制的滥用指针将造成程序的数据流混乱,可读性下降等问题。所以在使用指针时要多一分小心。预备知识内存就是内部存储器,由存储单元组成。它的特点是存储单元是线性连续的。存储单元的最小单位是字节。···············正如我们的住房都有门牌号码一样,为了访问内存中的某个存储单元,我们也要为它编号,这种编号称为内存地址。通过

2、地址我们就能够访问该地址所标示的存储单元。········0123203地址内容45在程序中定义了一个变量,这个变量在内存中就要占用一定大小的空间,通常这个空间的大小就由这个变量的类型决定。变量在内存中总是占用几个连续的字节,开始字节的地址就是变量的地址。inti; charch; floatf1; i=10;ch=‘A’; f1=3.14;3.14‘A’10地址变量2000200420052008ichf14字节1字节4字节什么是指针指针就是变量的地址。与此对应,在C++语言中使用一种专门的变量---指针变量来存放另一变量的地

3、址。也就是说,指针变量是存放地址数据的变量,它的值应该是某个变量的地址。指针变量变量地址(指针)变量变量的值指向地址存入指针变量一般来说,指针变量只能存放某一种数据类型的变量地址,由此可以将指针变量划分为整型指针变量、实型指针变量、字符型指针变量等等。 整型指针变量只能存放整型变量的地址。 实型指针变量只能存放实型变量的地址。 字符型指针变量只能存放字符型变量的地址。当把变量的地址存入指针变量后,我们就可以说这个指针指向了该变量。指针变量pi2000变量i变量i的值指向地址2000指针的定义指针定义的结构形式如下: 数据类型名*

4、指针变量名如:int*ptr1,*ptr2;float*ptr3;char*ptr4;在定义指针时要注意以下几个问题:1。指针变量名前面的星号“*”不能省略,如果写成int*ptr1,ptr2;则ptr2被定义为整型变量而非指针变量。2。定义中的星号“*”表示所定义的变量是指针变量,但指针变量名是ptr1、ptr2,而非*ptr1、*ptr2。3。指针变量只能指向定义时所规定类型的变量。如ptr1只能指向整型变量,ptr4只能指向字符型变量。4。定义指针变量后,并未确定该变量指向何处。也就是说变量的值是不确定的。在引用指针变量前

5、,必须首先让它确定一个变量,这一点非常重要。指针的赋值指针的赋值运算就是把地址值赋值给指针变量。指针的赋值运算可以是以下几种方式:1。使用取地址运算符&。如:inti,a[5],*ptr;ptr=&i;ptr=&a[1];2。把指针变量的值赋值给另一个指针变量。如:inti,*ptr1=&i,*ptr2;ptr2=ptr1;可不可以把a赋值给ptr,即ptr=a;?可以!a即为数组的首地址。ptr=a;等价于ptr=&a[0];3。给指针变量赋值为赋号常量NULL,如:int*ptr;ptr=NULL;实际上NULL是一个空指针

6、,这样的指针不指向任何变量。为了避免指针变量的非法引用,我们一般要给没有被初始化的指针变量赋值为NULL作为标志。4。把指针变量赋值为0。如:int*ptr=0;这里的0等价于NULL,值0是唯一能够直接赋值给指针变量的整数值。&(取地址运算)和*(引用运算)地址运算符&的作用是取变量的地址,如:&i表示求变量i的地址。引用运算符*的作用是取指针所指向变量的内容,例如:*ptr表示求指针ptr所指向变量的内容。&运算和*运算是一对互逆运算。20003指针ptr2000iptr指向了i变量*ptr表示取所指向变量i的值,即3int

7、i=3,*ptr;ptr=&i;*ptr=15;?20002000i指针ptr*ptr=15等价于i=15,因此改变了变量i的值。15例:voidmain() {charch=‘A’,*ch_ptr;ch_ptr=&ch;cout<<“ch=”<

8、_ptr=Ach=X*ch_ptr=Xch的地址是0xFFF5指针的+、-运算指针可以加上或减去一个整数,指针的这种运算的意义和通常的数值的加减运算的意义不同。 指针的加减运算分为两种:一种是指针与整型值的加减运算,一种是指针与指针的减运算。structstud

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

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

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