欢迎来到天天文库
浏览记录
ID:59412610
大小:693.00 KB
页数:71页
时间:2020-09-19
《《C++程序设计》第6章 指针 谭浩强版ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章指针6.1指针的概念6.2变量与指针6.3数组与指针6.4字符串与指针6.5函数与指针6.6返回指针值的函数6.7指针数组和指向指针的指针6.8有关指针的数据类型和指针运算的小结*6.9引用9/18/20211湖北大学数计学院计科系朱明6.1指针的概念指针是一种数据类型.每一种基本数据类型都有相应的指针类型.指针是存放数据的内存地址,故指针变量有时又称为地址型变量.区别指针和指针变量.一个变量的地址称为该变量的指针;专门用来存放另一变量地址的变量称为指针变量.9/18/20212湖北大学数计学院计科系朱明1.内存单
2、元和地址程序中的数据只有被调入内存才能得以运行.内存是由许多内存单元组成的,每个单元都有自己独立的地址,称为内存单元地址(或物理地址).通过内存单元地址可以访问相应的内存单元.9/18/20213湖北大学数计学院计科系朱明2.变量与地址程序中可以用变量来存放各种数据,每个变量在定义时都需要分配连续的内存单元,其数目依变量的数据类型而定.若变量只占用一个内存单元,则内存单元的地址就是该变量的地址;若变量占用连续的多个内存单元时,则第一个单元的地址就是该变量的地址.inti=3,j=5;floatf=1.0;整型变量i整型变
3、量j单精度变量f20012002200320042005200620072008地址内存单元351.09/18/20214湖北大学数计学院计科系朱明3.直接存取与间接存取*:指针运算符(间接访问运算符)&:取地址运算符直接存取(访问)方式间接存取(访问)方式inti;i=3;inti,*i_pointer;i_pointer=&i;*i_pointer=3;例:test6_1.cpp9/18/20215湖北大学数计学院计科系朱明#includeusingnamespacestd;intmain(
4、){floatf=34.5;float*fPtr=&f;//浮点指针int*iPtr=(int*)&f;//warning:将浮点变量的地址赋给整型指针cout<"<<*iPtr<"<<*fPtr<5、与实际存储的匹配9/18/20216湖北大学数计学院计科系朱明*iPtr=*fPtr;//隐式数据转换cout<1107951616fPtr:0x0067fdfc=>34.54.76441e–44344.76441e–44指针具有一定类型,它是值为地址的变量,该地址是内存中另一个该类型变量的存储位置.或者说6、,指针是具有某个类型的地址.9/18/20217湖北大学数计学院计科系朱明4.数组与地址对数组而言,分配的内存单元必须是连续的,并且按顺序对应数组元素,其中,每个数组元素也要占用连续的内存单元.数组的第一个元素的地址(即第一个元素所占用的第一个内存单元的地址)称为数组的首地址.在C中,用数组名表示数组的首地址,它是一个地址常量.inta[3]={1,2,3};321300130023003300430053006地址内存单元a[0]a[1]a[2]9/18/20218湖北大学数计学院计科系朱明6.2变量与指针变量的指针就7、是变量的地址;用来存放变量地址的变量是指针变量.inti,*i_pointer;i_pointer=&i;*i_pointer=3;*放在指针定义中,称为指针定义符;其余时候,*放在指针变量名之前,称为间接引用符.9/18/20219湖北大学数计学院计科系朱明6.2.1定义指针变量存储类型基类型*指针变量名;上句定义了一个指向基类型数据的指针变量;必须给出基类型,与指针变量的运算有关.不能用一个整数对指针变量赋值.int*pointer=2000;//error9/18/202110湖北大学数计学院计科系朱明存储类型:凡8、可声明普通变量的地方,都可声明指针变量,它可以是全局,静态全局,静态局部和局部的.数据类型:通常,每个指针都有一个类型(void*指针除外),即定义中的基类型.指针定义时会发生内存空间分配.指针在使用前,要进行初始化;指针忘了赋值比普通变量忘了赋值要危险得多.intcount;int*iPtr;*iPtr=58;//
5、与实际存储的匹配9/18/20216湖北大学数计学院计科系朱明*iPtr=*fPtr;//隐式数据转换cout<1107951616fPtr:0x0067fdfc=>34.54.76441e–44344.76441e–44指针具有一定类型,它是值为地址的变量,该地址是内存中另一个该类型变量的存储位置.或者说
6、,指针是具有某个类型的地址.9/18/20217湖北大学数计学院计科系朱明4.数组与地址对数组而言,分配的内存单元必须是连续的,并且按顺序对应数组元素,其中,每个数组元素也要占用连续的内存单元.数组的第一个元素的地址(即第一个元素所占用的第一个内存单元的地址)称为数组的首地址.在C中,用数组名表示数组的首地址,它是一个地址常量.inta[3]={1,2,3};321300130023003300430053006地址内存单元a[0]a[1]a[2]9/18/20218湖北大学数计学院计科系朱明6.2变量与指针变量的指针就
7、是变量的地址;用来存放变量地址的变量是指针变量.inti,*i_pointer;i_pointer=&i;*i_pointer=3;*放在指针定义中,称为指针定义符;其余时候,*放在指针变量名之前,称为间接引用符.9/18/20219湖北大学数计学院计科系朱明6.2.1定义指针变量存储类型基类型*指针变量名;上句定义了一个指向基类型数据的指针变量;必须给出基类型,与指针变量的运算有关.不能用一个整数对指针变量赋值.int*pointer=2000;//error9/18/202110湖北大学数计学院计科系朱明存储类型:凡
8、可声明普通变量的地方,都可声明指针变量,它可以是全局,静态全局,静态局部和局部的.数据类型:通常,每个指针都有一个类型(void*指针除外),即定义中的基类型.指针定义时会发生内存空间分配.指针在使用前,要进行初始化;指针忘了赋值比普通变量忘了赋值要危险得多.intcount;int*iPtr;*iPtr=58;//
此文档下载收益归作者所有