指针的定义和应用ppt课件.ppt
《指针的定义和应用ppt课件.ppt》由会员分享,可在线阅读,更多相关《指针的定义和应用ppt课件.ppt(65页珍藏版)》请在三一办公上搜索。
1、第15章 指 针,西南交通大学软件学院计算机基础教研室,C+编程导论,2,本章主要内容,C+中指针的基本概念指针类型变量的定义方法指针与地址运算符指针变量赋值、指针的运算通过指针类型的变量去访问某个变量或数组元素的值引用动态分配内存按引用调用,3,什么是地址?,计算机的内存储器就象一个巨大的一维数组, 每个数组元素就是一个存储单元(在微型计算机中其大小通常为一个字节)。就象数组中的每个元素都有一个下标一样, 每个内存单元都有一个编号, 又称地址。,4,什么是地址?,在运行一个程序时, 程序本身及其所用到的数据都要放在内存储器中:程序、函数、变量、常数、数组和对象等, 在内存储器中占有一席之地。
2、 存放在内存储器中的程序和数据都有一个地址, 用它们占用的那片存储单元中的第一个存储单元的地址表示。,5,什么是地址?,在C+中,为某个变量或者函数分配内存储器的工作由编译程序完成。内存地址的访问方式直接访问方式:通过变量名访问间接访问方式:通过地址访问,6,如何知道某个变量、数组、函数的地址,+规定:变量的地址可以使用地址运算符函数的地址用函数名表示。,7,什么是指针,指针是C+语言中的一种数据类型,是专门用来处理地址的。指针是某个内存单元的首地址。,8,什么是指针变量?,指针变量是包含另一个变量地址的变量。指针变量也是一个变量,遵循先定义,后使用。定义指针变量的类型是由该指针指向的变量类型
3、决定。,9,指针变量的概念,定义例:int i; int * i_pointer; 指向整型变量的指针,10,指针变量的声明,变量的指针:变量在内存中的存放起始地址指针变量的声明: 类型标识符* 指针变量 例如:int* p; 定义语句中的“*”表示该变量为指针变量 一个指针变量只能存储同一种类型变量的地址,11,指针变量的初始化,语法形式 类型标识符 * 指针名初始地址;例: int * pa=,12,指针变量的初始化,注意事项用变量地址作为初值时,该变量必须在指针初始化之前定义。 如:int a; int * pa=,13,指针与地址运算符,“ ,14,指针与地址运算符,*出现在声明语句和
4、执行语句中的含义是不同的。 int* p; / *在声明语句中表示声明的是指针,声明p是整型指针 cout*p; / *在执行语句中表示指针所指对象的内容,15,指针变量的赋值运算,指针变量=地址 p = /将指针p2的值赋个指针p1,16,指针变量的赋值运算,指针变量=地址不能把常量或表达式的地址赋给指针变量。 如:P=,17,例1 指针的定义、赋值与使用,#includeusing namespace std;void main( )int *i_pointer; int i; i_pointer=,18,程序运行的结果是:Output int i=10Output int pointer
5、 i=10,19,指针变量的算术运算,指针与整数的加减运算指针 p 加上或减去 n ,其意义是指针当前指向位置的前方或后方第 n 个数据的地址。这种运算的结果值取决于指针指向的数据类型。指针加一,减一运算指向下一个或前一个数据。,20,pa,21,pb-1,pb,pb+1,pb+2,*(pb-1),*pb,*(pb+1),*(pb+2),int *pb,22,关系运算 两个指针变量指向同一个数组中的元素时,其关系运算的结果表明了这两个指针变量所指向的数组元素的先后关系 指针可以和零之间进行等于或不等于的关系运算。例如:p=0或p!=0,指针变量的关系运算,23,指针的关系运算,例如: char
6、 a10; char *p1,*p2; p1=a+2; p2=a+4;,p1+;p2-;,24,指向数组元素的指针,定义与赋值例: int a10, *pa; pa=,25,指向数组元素的指针,通过指针引用数组元素经过上述声明及赋值后,在执行语句中*pa就是a0,*(pa+1)就是a1,. ,*(pa+i)就是ai.ai, *(pa+i), *(a+i), pai都是等效的。不能写 a+,因为a是数组首地址是常量。,26,应用举例2,设有一个int型数组a,有10个元素。用四种方法访问数组的各个元素:使用数组名和下标使用数组名和指针运算使用指针变量使用下标表示法引用指针指向的数组元素,27,#
7、include using namespace std;void main( ) int a10; int i,*p; for(i=0; iai; for(i=0; i10; i+) cout*(a+i); for(p=a; p-a10; p+) cout*p;p=a;for(i=0; i10; i+)coutpi;,28,应用举例3,#include #include using namespace std;void main( ) const int M=20,N=10; int aM,bN,cM; int d,e,f=0,*pa,*pb,*pc;,从键盘输入整数集合a、b的元素个数和各个
8、元素的值,计算并输出其交集,29,coutd; cout*pa;coute;cout*pb;,30,for(pa=a,pc=c;paa+d;pa+) for(pb=b;pbb+e;pb+) if(*pa=*pb) *pc+=*pa; f+;break; cout交集c的各个元素依次为:endl; for (pc=c;pcc+f;pc+) coutsetw(3)*pc; ,31,应用举例4,#include #include using namespace std;void main( ) const int M=20,N=10; int aM,bN,cM+N; int d,e,f=0,*pa,
9、*pb,*pc;,从键盘输入整数集合a、b的元素个数和各个元素的值,计算并输出其并集,32,coutd; cout*pa;coute;cout*pb;,33,for(pa=a,pc=c;pa=a+d) *pc+=*pb; f+; cout“并集c的各个元素依次为:endl; for (pc=c;pcc+f;pc+) coutsetw(3)*pc; ,34,字符指针来存储和处理字符串,字符指针与字符串字符串是由字符数组中的结束标志符“0”之前的字符组成的特殊数组,指向这一特殊数组的指针则称字符串指针。字符串指针的定义、赋值和引用与指向数组的指针基本相同,35,用字符数组存储和处理字符串,注意!若
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指针 定义 应用 ppt 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-1869517.html