欢迎来到天天文库
浏览记录
ID:50351527
大小:474.00 KB
页数:44页
时间:2020-03-08
《C语言程序设计 教学课件 作者 路俊维 马雪松主编 第8章 指针.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、任务用指针实现两个字符串的合并任务目的指针是C语言中一个重要的概念,也是C语言的精华部分。正确的使用指针,可以有效地描述复杂的数据结构,书写出简洁、高效的程序。通过使用VC++6.0对“用指针实现两个字符串的合并”程序的开发,使学生熟练掌握指针的基本应用。任务所需主要相关知识指向变量的指针变量指向数组的指针指向函数的指针指针知识扩展8.1指针概述指针是C语言中广泛使用的一种数据类型,它极大地丰富了C语言的功能。巧妙而恰当地使用指针,可以使程序简洁、提高运行效率。同时,指针也是C语言中最难掌握的一部分,在学习中除了要正确理解基本概念,还必须要多编程并上机调试。1.指针
2、的概念在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元的大小不等,如一个整型数占2个单元,1个字符型数占1个单元等。为了正确地访问这些内存单元,必须为每个内存单元编号。根据一个内存单元的编号即可准确地找到该内存单元,内存单元的编号也叫做地址。既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常把这个地址形象的称为指针。2.指针变量的概念内存单元的指针和内存单元的内容是两个不同的概念。在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。如图8-1中的变量x就是一个指针变量。图8-1变
3、量i的指针与指向变量i的指针变量8.2指向变量的指针变量的指针就是变量的地址。存放变量地址的变量就是指针变量。即在C语言中,允许用一种变量来存放地址,这种变量称为地址变量,又称指针变量。因此,一个指针变量的值就是某个变量的地址或某个变量的指针。为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”符号表示“指向”,例如,x代表指针变量,而*x是指针变量x所指向的变量,如图8-2所示。图8-2x为指向变量i的指针变量8.2指向变量的指针1.指针变量的定义形式其一般形式为:类型说明符*变量名;其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示
4、该指针变量所指向的变量的数据类型。例如:int*q1;表示q1是一个指针变量,并且只能指向某一个整型变量。至于q1究竟指向哪一个整型变量,应由向q1赋予的地址来决定。2.指针变量的引用指针变量同普通变量一样,使用之前必须要先定义,并且赋值。未经赋值的指针变量不能使用。为指针变量赋值只能赋予一个地址值,而不允许是其它类型的数据,否则将引起错误。在C语言中,变量的地址是由编译系统分配的。两个有关指针的运算符:(1)&:取地址运算符。(2)*:取内容运算符(又称“指向运算符”)。3.指针变量做函数的参数函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作
5、用是将一个变量的地址传送到另一个函数中。【例8.2】输入a和b两个整数,按先大后小的顺序输出a和b,要求用函数处理,并且用指针变量做函数的参数。程序代码#includechange(int*q1,int*q2){intt;t=*q1;*q1=*q2;*q2=t;}voidmain(){inta,b;int*p1,*p2;scanf("%d,%d",&a,&b);p1=&a;p2=&b;if(a6、针就是数组元素的地址。1.指向数组元素的指针定义一个指向数组元素的指针变量的方法,与前面介绍的指针变量的方法相同。定义形式如下:类型说明符*指针变量名;其中类型说明符表示所指数组的类型。从一般形式可以看出指向数组的指针变量和指向普通变量的指针变量的定义相同。例如:inta[5];/*定义a为一个整型的数组,其中包含5个元素*/int*p;/*定义p为指向整型变量的指针变量*/应当注意,因为数组为int型,所以指针变量也应为指向int型的指针变量。下面是对指针变量的赋值:p=&a[0];把a[0]元素的地址赋给指针变量p。使p指向a数组的第0号元素。如右图所示。p指向7、a数组的第0号元素2.通过指针引用数组元素C语言规定:如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。引入指针变量后,就可以用两种方法来访问数组元素了。如果p的初值为&a[0],则:图8-14指向数组的指针变量p值的变化(1)p+i和a+i就是a[i]的地址,或者说它们指向a数组的第i个元素。如图8-14所示。(2)*(p+i)或*(a+i)就是p+i或a+i所指向的数组元素,即a[i]。例如:*(p+3)或*(a+3)就是a[3]。(3)指向数组的指针变量也可以带下标,如p[i]与*(p+i)等价。根据以上叙述,引用一个数组元素可以
6、针就是数组元素的地址。1.指向数组元素的指针定义一个指向数组元素的指针变量的方法,与前面介绍的指针变量的方法相同。定义形式如下:类型说明符*指针变量名;其中类型说明符表示所指数组的类型。从一般形式可以看出指向数组的指针变量和指向普通变量的指针变量的定义相同。例如:inta[5];/*定义a为一个整型的数组,其中包含5个元素*/int*p;/*定义p为指向整型变量的指针变量*/应当注意,因为数组为int型,所以指针变量也应为指向int型的指针变量。下面是对指针变量的赋值:p=&a[0];把a[0]元素的地址赋给指针变量p。使p指向a数组的第0号元素。如右图所示。p指向
7、a数组的第0号元素2.通过指针引用数组元素C语言规定:如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。引入指针变量后,就可以用两种方法来访问数组元素了。如果p的初值为&a[0],则:图8-14指向数组的指针变量p值的变化(1)p+i和a+i就是a[i]的地址,或者说它们指向a数组的第i个元素。如图8-14所示。(2)*(p+i)或*(a+i)就是p+i或a+i所指向的数组元素,即a[i]。例如:*(p+3)或*(a+3)就是a[3]。(3)指向数组的指针变量也可以带下标,如p[i]与*(p+i)等价。根据以上叙述,引用一个数组元素可以
此文档下载收益归作者所有