评估课件_指针.ppt

评估课件_指针.ppt

ID:48762028

大小:1.12 MB

页数:62页

时间:2020-01-22

评估课件_指针.ppt_第1页
评估课件_指针.ppt_第2页
评估课件_指针.ppt_第3页
评估课件_指针.ppt_第4页
评估课件_指针.ppt_第5页
资源描述:

《评估课件_指针.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、高级语言程序设计授课班级:04通讯工程行知班上课地点:25-406授课时间:星期三1、2、3教学目标:利用指针进行编程授课方式:讲课教学方法:多媒体教学重点难点指针和指针变量的区别指针变量作为函数参数的应用指针作为数组元素的应用多维数组和指针的应用字符数组的应用第10章指针10.1地址和指针的概念10.2变量的指针和指向变量的指针变量10.3数组的指针和指向数组的指针变量10.4字符串的指针和指向字符串的指针变量10.5函数的指针和指向函数的指针变量10.6返回指针值的函数10.7指针数组和指向指针的指针10.8有关指针的数据类型和指针运算的小结10.1地址和指针的概念

2、C语言中,将地址形象化地称为“指针”。一个变量的地址称为该变量的“指针”。例如,地址2000是变量i的指针。如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”。请区分“指针”和“指针变量”这两个概念。举例:printf(“%d”,i)的执行过程scanf(“%d”,&i)的执行过程直接访问方式:按变量地址存取变量值的方式称为“直接访问”方式。“间接访问”的方式:将变量i的地址存放在另一个变量中。该变量是存放变量所占用单元的起始地址。要存取变量i的值,也可以采用间接方式:先找到存放“变量地址”的变量,再去找。变量的指针就是变量的地址。存放变量地址的变

3、量是指针变量,用来指向另一个变量。“*”符号表示“指向”,表示指针变量和它所指向的变量之间的联系。例如:i-pointer代表指针变量,而*i-pointer是i-pointer所指向的变量10.2变量的指针和指向变量的指针变量下面两个语句作用相同吗?①i=3;②*i-pointer=3;一般形式:基类型*指针变量基类型:用来指定该指针变量可以指向的变量的类型。例如:int*pointer_1,*pointer_2;char*pointer_4;(pointer-4是指向字符型变量的指针变量)pointer-1=100;10.2.1定义一个指针变量怎样使一个指针变量指向

4、另一个变量呢?pointer_1=&i;pointer_2=&j;在定义指针变量时要注意两点:(1)指针变量前面的“*”,表示该变量的类型为指针型变量。注意:指针变量名是pointer_1、pointer_2,而不是*pointer_1、*pointer_2。(2)在定义指针变量时必须指定基类型。请牢记,指针变量中只能存放地址(指针),有两个有关的运算符:(1)&:取地址运算符。(2)*:指针运算符(或称“间接访问”运算符)。例如:&a,*p例10.1通过指针变量访问整型变量。10.2.2指针变量的引用对程序的说明:(1)程序第5、6行的作用就是使pointer-1指向

5、a,pointer-2指向b,此时pointer-1的值为&a(即a的地址),pointer-2的值为&b。(2)最后一行的pointer-1和*pointer-2就是变量a和b。最后两个printf函数作用是相同的。(3)程序中有两处出现pointer-1和*pointer-2,请区分它们的不同含义。(4)第5、6行“pointer-1=&a;”和“pointer-2=&b;”是将a和b的地址分别赋给pointer-1和pointer-2。注意不应写成:“*pointer-1=&a;”和“*pointer-2=&b;”。因为a的地址是赋给指针变量pointer-1,

6、而不是赋给*pointer-1(即变量a)。对“&”和“*”运算符的说明:(1)如果已执行了“pointer-1=&a;”语句,若有&*pointer-1它的含义是什么?“&”和“*”两个运算符的优先级相同,但按自右向左结合。因此,&*pointer-1与&a相同,即变量a的地址。(2)*&a的含义是什么?(3)(*pointer-1)++相当于a++。注意和*(pointer-1++)的区别。例10.2输入a和b两个整数,按先大后小的顺序输出a和b。注意:a和b并未交换,它们仍保持原值,但p1和p2的值改变了。例10.3题目同例10.2,即对输入的两个整数按大小顺序输

7、出。10.2.3指针变量作为函数参数对程序的说明:swap是用户定义的函数,它的作用是交换两个变量(a和b)的值。注意实参pointer-1和pointer-2是指针变量,在函数调用时,将实参变量的值传送给形参变量。采取的依然是“值传递”方式。注意:交换*p1和*p2的值如果写成swap(int*p1,int*p2){inttemp;*temp=*p1;/*此语句有问题*/p1=*p2;p2=*temp;}注意,不能企图通过改变指针形参的值而使指针实参的值改变。请看下面的程序:swap(int*p1,int*p2){intp;p=p1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。