欢迎来到天天文库
浏览记录
ID:49261834
大小:466.00 KB
页数:51页
时间:2020-02-02
《C++课件第五章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2021/9/71第5章指针的应用§5.1、指针概述一、内存地址的概念地址编码的基本单位是字节,每个字节是一个基本内存单元。二、从内存单元中存取数据的方法1、通过变量名,称为直接访问方式,直接对变量的存储单元进行存取访问。在变量获得内存空间的同时,变量名也就成为了相应内存空间的名称,在变量的整个生存期内都可以用这个名字访问该内存空间,表现在程序语句中就是通过变量名存取变量内容。2021/9/722、通过地址,称为间接访问方式,先找到存放变量的地址的变量,得到变量的地址,再根据变量的地址找到变量的存储单元,对它进行存取访问。C++拥有在运行时获得变量的地址和操纵地址的能力。变量的地址可以使用
2、地址运算符&求得,在某一变量前加上地址运算符&,则为该变量的地址,如:&x表示变量x的地址数组名表示数组的首地址;函数的地址用函数名表示。用来存放地址的变量就叫做指针型变量,简称指针。2021/9/73假设ptr为一指针,则语句:ptr=&x;就将变量x的地址存入了指针ptr中。也经常简称为“指针ptr指向变量x”。可以通过指针得到变量x的值或改变变量x的值:*ptr=2;//相当于x=2y=*ptr;//将x的值赋给y2021/9/74例5.1、阅读如下程序:源程序清单:#includeusingnamespacestd;voidmain(){inta;int*p;a
3、=10;p=&a;cout<<"a的值表示方法1:"<4、类型后跟星号,再跟随指针变量名组成。数据类型*指针变量名;如:int*iptr;int*iptr;int*iptr;int*iptr;在指针定义中,一个*只能表示一个指针。int*iptr1,iptr2;//iptr1—指针变量,iptr2整型变量int*iptr1,*iptr2;//两个指针变量2021/9/77地址和指针的关系intx,*ptr;x=3;ptr=&x;如果ptr指向x,那么*ptr的值为x的值,以后对*ptr的赋值等价于对x的赋值。#includeusingnamespacestd;voidmain(){intx=3,*ptr;ptr=&x;*ptr5、=11;cout<6、但可以赋整数值0,表示该指针为空指针。例如:int*p;p=0;p为空指针,不指向任何地址。2021/9/7103.允许声明指向void类型的指针,该指针可以被赋予任何类型对象的地址。例如:void*general;int*point;inti;general=&i;point=(int*)general;2021/9/711例5.2、阅读如下程序:源程序清单:#includeusingnamespacestd;voidmain(){intx;int*p;int*q;inta=3;int*pa=&a;p=&x;q=p;cout<<*pa<7、2#includeusingnamespacestd;voidmain(){intx=3,*ptr=&x;*ptr=52;cout<
4、类型后跟星号,再跟随指针变量名组成。数据类型*指针变量名;如:int*iptr;int*iptr;int*iptr;int*iptr;在指针定义中,一个*只能表示一个指针。int*iptr1,iptr2;//iptr1—指针变量,iptr2整型变量int*iptr1,*iptr2;//两个指针变量2021/9/77地址和指针的关系intx,*ptr;x=3;ptr=&x;如果ptr指向x,那么*ptr的值为x的值,以后对*ptr的赋值等价于对x的赋值。#includeusingnamespacestd;voidmain(){intx=3,*ptr;ptr=&x;*ptr
5、=11;cout<6、但可以赋整数值0,表示该指针为空指针。例如:int*p;p=0;p为空指针,不指向任何地址。2021/9/7103.允许声明指向void类型的指针,该指针可以被赋予任何类型对象的地址。例如:void*general;int*point;inti;general=&i;point=(int*)general;2021/9/711例5.2、阅读如下程序:源程序清单:#includeusingnamespacestd;voidmain(){intx;int*p;int*q;inta=3;int*pa=&a;p=&x;q=p;cout<<*pa<7、2#includeusingnamespacestd;voidmain(){intx=3,*ptr=&x;*ptr=52;cout<
6、但可以赋整数值0,表示该指针为空指针。例如:int*p;p=0;p为空指针,不指向任何地址。2021/9/7103.允许声明指向void类型的指针,该指针可以被赋予任何类型对象的地址。例如:void*general;int*point;inti;general=&i;point=(int*)general;2021/9/711例5.2、阅读如下程序:源程序清单:#includeusingnamespacestd;voidmain(){intx;int*p;int*q;inta=3;int*pa=&a;p=&x;q=p;cout<<*pa<7、2#includeusingnamespacestd;voidmain(){intx=3,*ptr=&x;*ptr=52;cout<
7、2#includeusingnamespacestd;voidmain(){intx=3,*ptr=&x;*ptr=52;cout<
此文档下载收益归作者所有