《C语言程序设计教程》电子教案-李淑华 第13讲 指针

上传人:E**** 文档编号:89434101 上传时间:2019-05-25 格式:PPT 页数:11 大小:64KB
返回 下载 相关 举报
《C语言程序设计教程》电子教案-李淑华 第13讲  指针_第1页
第1页 / 共11页
《C语言程序设计教程》电子教案-李淑华 第13讲  指针_第2页
第2页 / 共11页
《C语言程序设计教程》电子教案-李淑华 第13讲  指针_第3页
第3页 / 共11页
《C语言程序设计教程》电子教案-李淑华 第13讲  指针_第4页
第4页 / 共11页
《C语言程序设计教程》电子教案-李淑华 第13讲  指针_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《《C语言程序设计教程》电子教案-李淑华 第13讲 指针》由会员分享,可在线阅读,更多相关《《C语言程序设计教程》电子教案-李淑华 第13讲 指针(11页珍藏版)》请在金锄头文库上搜索。

1、第十二讲 指针,9.1 指针的定义与引用 9.2 指针变量作为函数参数 9.3 指针与数组(上),9.1 指针的定义与引用,9.1.1 指针的定义与引用 9.1.1 指针的概念 指针是一种数据类型,它是用来专门存放所指对象地址变量。也就说,数据值存放在指针所指的对象中,而不是在指针变量中。 例如:定义一个数值型变量i=3,它的地址为2000,把地址值2000存放在变量pi中,通过pi可以间接地访问变量i。Pi就是指向i的指针变量,pi和它所指对象的关系如图:,2000,3,2000,3,Int i=3 Pi=&i,2000,pi,i,*pi,i=3 *Pi=3,一个变量的地址称为该变量的“指针

2、”。 如果一个变量专门用来存放另一变量的地址(即指针),则称为“指针变量”。指针变量的值是指针(地址)。,9.1.2 指针变量的定义,格式:类型标识符 *标识符; 功能:定义一个指针变量。 说明: (1)标识符就是指针变量的名字; (2)*是指针类型的标志。 (3)必须包括指针的数据类型。 例如: Int i,j; Int *p1,*p2; P1= 注意: (1)标识前面的“*”,表示该变量为指针变量; (2)一个指针变量只能指向同一个类型的变量。只有同一类型变量的地址才能放到指向该类型的指针变量中。,9.1.3 指针变量的引用 (1)&:取地址运算符,它的作用是取得变量所占用的存储单元的首地

3、址。 (2)*:指针运算符(或称“间接访问”)。 说明: (1)在利用指针变量间接访问之前,一般都必须使用&运算符将某个变量的地址赋给相应的指针变量。 (2)*“间接访问”运算符的作用,是通过指针变量来访问它所指向的变量(存数据或取数据)。,例9.1 输出两个整数 main() int a,b; int *p1,*p2; a=200;b=30; p1= ,注意: (1)在定义指针变量的同时也可以初始化,例如 int *p1; p1= (2)一旦将变量a的地址赋给指针变量p1,*p1总是与a等价。,例9.2 输入a和b两个整数,接先大后小的顺序输出a和b。 main() int *p1,*p2,

4、*p,a,b; scanf(“%d,%d”, ,9.2 指针变量作为函数参数,函数的参数不仅可以是整型、实型、字符型等数据类型。它的作用是将一个变量的地址传送到另一个函数中。 例9.3 输入两个数,按大小顺序输出。用指类型的数据做函数的参数。,swap(p1,p2) int *p1,*p2; int p; p=*p1;*p1=*p2;*p2=p; ,main() int a,b; int *x1,*x2; scanf(“%d,%d”, ,例9.4 输入a、b、c三个整数,按大小顺序输出,swap(pt1,pt2) int *pt1,*pt2; int p; p=*pt1;*pt1=*pt2;p

5、t2=p; change(q1,q2,q3) int *q1,*q2,*q3; if(*q1*q2)swap(q1,q2); if(*q1*q3)swap(q1,q3); if(*q2*q3)swap(q2,q3); ,main() int a,b,c,*p1,*p2,*p3; scanf(“%d,%d,%d”, ,9.3 指针与数组,9.3.1 指向数组元素的指针变量的定义与赋值 int a10; int *p; p=,9.3.2 通过指针引用数组元素 语句说明: int a10,*p; p=a; 则p=a;和p= &ai与a+i等价 Pi与*(p+i)等价,结论:通过指针引用数组 (1)p

6、+i和a+i就是ai的地址,或者说,它们指向a数组的第i个元素,a代表数组的首地址。 (2)*(p+i)或*(a+i)就是p+i或a+i所指向的数组元素,即ai。 (3)指向数组的指针变量也可以带下标,如pi与*(p+i)等价。 即引用一个数组元素,可以用两种方法: (1)下标法,如ai形式。 (2)指针法,如*(a+i)或*(p+i).,例9.5 用三种方法输出a数组的10个元素的值。,方法一(下标法): main() int a10=1,2,3,4,5,6,7,8,9,10; int I; printf(“n”); for(i=0;i10;i+); printf(“%d “,ai); ,方

7、法二(通过数组名计算数组元素地址,找出元素的值: main() int a10=1,2,3,4,5,6,7,8,9,10; int I; printf(“n”); for(i=0;i10;i+); printf(“%d “,*(a+i); ,方法三(用指针变量指向数组元素: main() int a10; int I,*p; for(i=0;i10;i+) scanf(“%d”, ,例9.6 分别用下标法和指针法输出数组。 main() int i;,*p,a10; p=a; for(i=0;i10;i+) ai=i+10; p=a; printf(“n”); for(i=0;i10;i+);

8、 printf(“*(p+%d)=%d”,I,*(p+i); printf(“ p%d=%d”,i,pi); printf(“ *(a+%d)=%dn”,i,*(a+i); ,*(p+0)=10 p0=10 *(a+0)=10 *(p+1)=11 p1=11 *(a+1)=11 *(p+2)=12 p2=12 *(a+2)=12 *(p+3)=13 p3=13 *(a+3)=13 *(p+4)=14 p4=14 *(a+4)=14 *(p+5)=15 p5=15 *(a+5)=15 *(p+6)=16 p6=16 *(a+6)=16 *(p+7)=17 p7=17 *(a+7)=17 *(p+8)=18 p8=18 *(a+8)=18 *(p+9)=19 p9=19 *(a+9)=19,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号