C语言程序设计教程教学课件李淑华 第13讲指针.ppt

C语言程序设计教程教学课件李淑华 第13讲指针.ppt

ID:50352629

大小:64.00 KB

页数:11页

时间:2020-03-08

C语言程序设计教程教学课件李淑华 第13讲指针.ppt_第1页
C语言程序设计教程教学课件李淑华 第13讲指针.ppt_第2页
C语言程序设计教程教学课件李淑华 第13讲指针.ppt_第3页
C语言程序设计教程教学课件李淑华 第13讲指针.ppt_第4页
C语言程序设计教程教学课件李淑华 第13讲指针.ppt_第5页
资源描述:

《C语言程序设计教程教学课件李淑华 第13讲指针.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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和它所指对象的关系如图:2000320003Inti=3Pi=&i2000pii*pii=3*Pi

2、=3一个变量的地址称为该变量的“指针”。如果一个变量专门用来存放另一变量的地址(即指针),则称为“指针变量”。指针变量的值是指针(地址)。9.1.2指针变量的定义格式:类型标识符*标识符;功能:定义一个指针变量。说明:(1)标识符就是指针变量的名字;(2)*是指针类型的标志。(3)必须包括指针的数据类型。例如:Inti,j;Int*p1,*p2;P1=&i;P2=&jFloat*p3;Char*p4;注意:(1)标识前面的“*”,表示该变量为指针变量;(2)一个指针变量只能指向同一个类型的变量。只有同

3、一类型变量的地址才能放到指向该类型的指针变量中。9.1.3指针变量的引用(1)&:取地址运算符,它的作用是取得变量所占用的存储单元的首地址。(2)*:指针运算符(或称“间接访问”)。说明:(1)在利用指针变量间接访问之前,一般都必须使用&运算符将某个变量的地址赋给相应的指针变量。(2)*“间接访问”运算符的作用,是通过指针变量来访问它所指向的变量(存数据或取数据)。例9.1输出两个整数main(){inta,b;int*p1,*p2;a=200;b=30;p1=&a;p2=&b;printf(“%d,

4、%d”,a,b);printf(“%d,%d”,*p1,*p2);}注意:(1)在定义指针变量的同时也可以初始化,例如int*p1;p1=&a;可改写成一条语句:int*p1=&a;(2)一旦将变量a的地址赋给指针变量p1,*p1总是与a等价。例9.2输入a和b两个整数,接先大后小的顺序输出a和b。main(){int*p1,*p2,*p,a,b;scanf(“%d,%d”,&a,&b);p1=&a;p2=&b;If<(a

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

6、swap(x1,x2);printf(“max=%d,min=%d”,a,b);}例9.4输入a、b、c三个整数,按大小顺序输出swap(pt1,pt2)int*pt1,*pt2;{intp;p=*pt1;*pt1=*pt2;pt2=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(){inta,b,c,*p1,*p2,*p3

7、;scanf(“%d,%d,%d”,&a,&b,&c);p1=&a;p2=&b;p3=&c;change(p1,p2,p3);printf(“%d,%d,%d”,a,b,c);}9.3指针与数组9.3.1指向数组元素的指针变量的定义与赋值inta[10];int*p;p=&a[0];把a[0]元素的地址赋给指针变量p。即p指向数组的第0号元素。C语言规定数组名代表数组的首地址,也就是第一个元素的地址。下面的语句是等价的:p=&a[0];p=a;在定义指针变量时可以赋初值:int*p=&a[0]

8、;等效于:int*p;p=&a[0];或写成:int*p=a;9.3.2通过指针引用数组元素语句说明:inta[10],*p;p=a;则p=a;和p=&a[0];是等价的。同理p=a+i等价于p=&a[i];如果指针p指向数组a的一个特定元素,,则p+i指向a的下一个元素。p-i指向p所指对象前面的第i个无素;p+i指向p所指对象后面的第i个无素;如果p=&a[0],则p+i是a[i]的地址,*(p+i)就是a[i]的内容。则有如下的推断:P=&a[0]

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

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

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