文档介绍:《面向对象程序设计》辅导六第八章指针和引用学****要点:指针既是C++语言中的重点,也是难点。指针是用来构造复杂数据类型的关键,因此,一定要牢牢掌握指针的原理,灵活的使用它。引用也是C++语言的重点内容,在很多时候可以用引用来代替指针,而且使用引用,程序的可读性和可维护性会好很多。所以,在能使用引用的地方,就使用引用,而不发使用指针。指针和数组的关系非常密切,在学****过程中,要注意它们之间的关系,以便能灵活地在程序中使用两者。学****要求:理解指针和引用的含义、定义、初始化及适用的场合。能够在程序设计中根据需要选择合适的数据类型。能够在程序中动态申请空间,并进行合适的指针操作。能够编制将引用作为函数参数和返回值的应用程序。理解指针和结构、指针和数组的关系,能在程序中综合应用。学****方法引导:从具体的实际问题出发理解指针、引用的含义,掌握相关的概念。结合实例来理解指针和引用的使用场合,而且熟悉指针与数组、结构之间的关系,并在程序设计中进行综合运用。学****内容:一、。指针类型定义以*标识。例:int*//整型指针char*//字符指针double*//:int*ip;char*cptr;int*iptr1,*iptr2;//(1)建立指针包含指针变量定义和给指针赋初值(地址)。(2)&操作符可取变量地址,指针变量用于存放地址。例:int*iptr;inticount=18;iptr=&icount;//指针赋值该例等价与。二、。例:floatf;inti;int*pi;则:pi=34;//errorpi=&f;//errorpi=&i;//*可取指针变量所指单元内容,称为间接引用指针。例:#include<>voidmain(){int*iptr;inticount=18;iptr=&icount;cout<<*iptr<<endl;*iptr=58;cout<<*iptr<<endl;}:指针变量也具有内存地址例:#include<>voidmain(){inticount=18;int*iptr=&icount;*iptr=58;cout<<icount<<endl;cout<<iptr<<endl;cout<<&icount<<endl;cout<<*iptr<<endl;cout<<&iptr<<endl;}结果:580x0067fe000x0067fe00580x0067fefc内存表示:例:inticount=58;int*iptr=&icount;则icount//整型变量iptr//指针变量&icount//整型变量icount地址&iptr//指针变量iptr地址*icount//错误*iptr//指针变量iptr所指单元内容4.*(取内容)和&(取地址)为互逆操作。例:p172页例。三、,定义指针所指向的数据类型的目的是说明如何解释指针所指空间的数据。har*str=0x0065FDEC0x0065FDED表示存放了字符串“0123”0x0065FDEE0x0065FDEFint*arr=0x0065FDEC0x0065FDF0表示存放了整数“0x33323130”2.[]分析下面的程序的运行结果。#include<>voidmain(){char*str=“12345678”;int*ip=(int*)str;short*sp=(shortint*)str;cout<<hex<<*ip<<endl;cout<<hex<<*sp<<endl;cout<<*str<<endl;cout<<str<<endl;cout<<“Sizeofchar*:”<<sizeof(char*)<<endl;cout<<“Sizeofint*:”<<sizeof(int*)<<endl;cout<<“Sizeoflongint*:”<<sizeof(longint*)<<endl;cout<<“Sizeofdouble*:”<<sizeof(double*)<<endl;}0x310x320x330x340x350x360x370x380x0str表示字符串“12345678”ip表示整数“0x34333231”sp表示短整数“0x3231”*指针类型void指针,又称空类型指针。不能进行指针运算,也不能进行间接引用。可将其它类型指针赋给void指针,反之不行,除非进行显示转换。例:void*p;p++;//error*p=