《数据类型指针》PPT课件.ppt
《《数据类型指针》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据类型指针》PPT课件.ppt(34页珍藏版)》请在三一办公上搜索。
1、,第3章,数据类型_指 针,第3章 数据类型_指 针,1、指针的概念2、指针运算3、指针的限定const指针4、指针与数组(补充)5、堆内存分配(补充)6、void 指针(补充)7、指针数组(补充),指针是一种特殊的数据类型。指针概念是C+语言中较难理解和较难掌握的概念之一。本章节介绍指针的概念、定义、运算等内容。,指针变量是一种特殊的变量,变量中存放的不是某种数据类型的数据,而是另一个变量或常量的地址。,1、指针概念,如有定义:int value=150;char ch=M;并执行赋值语句:pv=/pv holds the address of value 由于pv中存放的是value变量的
2、地址,pc中存放的是ch变量的地址,故称pv和pc为指针变量。简称为指针(Pointer)。,指针指向的对象称为目标或目标变量(常量)。如图3.1所示:,value,ch,*pv,*pc,图3.1 内存空间,1000H,1050H,C+规定:目标或目标变量可以用指针变量名前加上运算符“*”表示。pv的目标变量value可表示为*pv,pc的目标变量ch可表示为*pc,即*pv和value等效*pc和ch等效 而&pv和&pc表示针变量本身的地址,(1)、指针的定义指针变量也必须先定义后使用。定义的一般格式:类型定义符*指针变量名;其中:类型定义符指针指向对象的数据类型“*”说明符,表示其后的标
3、识符是指针变 量,而不是 一般变量。,例如:int*ptr;char*name;float*pf;其中,定义ptr,name,pf分别为指向整型、字符型和浮点型数据的指针。const int*ptr;/pointer to int const const char*cpc const float*point其中,ptr,cpc,point为指向常量的指针。注意:指针变量可以与其他变量一起定义,如:int a,bb,*c;char*p,*q,ch;指针变量也可定义为全局,静态和局部的指针。,例如:int num,*pn;char color,*pc;执行语句 pn=这里,“*”作为访问目标变量的
4、运算符,在定义指针时,“*”作为说明符。注意使用上的区别。,(2)、指针赋值,使用指针前,必须给已定义指针变量赋以指向目标变量的地址值。“&”操作符可获取变量的地址。,指针赋值的几种情况:同种数据类型的指针变量之间可以相互赋值。int a,*pa,*pb;pa=/正确,例:有关指针概念的程序#include using namespace std;void main()int icount=18;int*ptr=,结果:58 58 0 x0067fe00 0 x0067fdfc 0 x0067fe00,(3)、指针变量的地址 指针也是变量,指针变量的地址是指它本身的内存地址,如图3.1所示。,
5、图示如下:,图 3.2,(&icount),2、指针运算 指针运算实质上是地址运算。(1)、赋值运算(2)、取地址运算“则&(*ptr)表示指针ptr*(&x)表示变量x,(3)、指针与整数的加减运算在数组中,指针变量加上或减去一个整数n,表示:指针由当前所指向的位置向前或向后移动n个数据元素的位置。移动后的实际地址为:p n*sizeof(数据类型)(4)、指针的关系运算指向同种数据类型的指针可作关系运算,表示它们所存放的地址之间的关系。,=,!=,(1)、指向常量的指针 在指针定义语句的类型名前加上关键字const,表示指向的对象是常量。例如:const int a=80;const in
6、t b=15;const int*pi=/正确,指向另一个常量 注意:实际上常量指针是可以指向变量的,但这时候我们不能通过常量指针来修改变量的内容,但可以通过变量本身来改变其值。(2)、指针常量 定义指针时,在指针名前加上const 关键字,表示指针本身是常量。必须在定义时进行初始化。例如:char*const pc=“asdf”;pc=“dfgh”;/错误,不能修改指针常量中的地址*pc=b;/正确,内容被修改为“bsdf”(3)、指向常量的指针常量 定义指针时,在类型名及指针名前加上const 关键字,表示指向常量的指针常量。必须在定义时进行初始化。,3、const 指针,const in
7、t ci=7,di=30;const int*const cpc=/错误,不能修改指针指向的对象值 指向常量的指针常量可表示如下:,图 7.3,4、指针与数组,C+规定定义一个数组时,用数组名存放该数组在内存中的首地址。当把数组名赋予一个指针变量后,该指针指向数组,可以通过指针移动方式访问数组元素。,例1:一维数组 int a20,*p;p=a;则下标为i 的元素可表示为:ai,*(a+i),pi,*(p+i),对应地址可表示为:&ai,a+i,&pi,p+i,注意:数组名是指针常量,不是指针变量,不能给数组名赋值。,例2:二维数组对于二维数组这种特殊的“一维数组”,前面介绍的等价关系同样实用
8、:Bij*(Bi+j)*(*(B+i)+j)当i,j之一为0或均为0时:Bi0*(Bi+0)*Bi*(B+i)B0j(*(B+0)j(*B)j*(*B+j)B00*(B0+0)*B0*(B+0)*B,例如:下面程序是用指针方式访问数组元素,计算数组元素之和。#include using namespace std;void main()int iarray10=0,2,4,6,8,10,12,14,16,18;int sum=0;int*iptr=iarray;/指针初始化 for(int i=0;i10;i+)sum+=*iptr;iptr+;cout“sum is“sumendl;,运行结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据类型指针 数据类型 指针 PPT 课件
链接地址:https://www.31ppt.com/p-5584111.html