c语言指针课件.ppt

c语言指针课件.ppt

ID:52204752

大小:1.77 MB

页数:81页

时间:2020-04-02

c语言指针课件.ppt_第1页
c语言指针课件.ppt_第2页
c语言指针课件.ppt_第3页
c语言指针课件.ppt_第4页
c语言指针课件.ppt_第5页
资源描述:

《c语言指针课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章指针特点能直接对内存地址操作,使用灵活实现动态存储管理可以使程序简洁、紧凑、高效用间接访问的方式改变数据的逻辑顺序调用函数时可实现变量的引用传递地址和指针的概念变量的地址和变量的值inti=3;floatj=6;doublek=9;36.09.0变量i变量j变量k2200220622022214程序中定义的变量,系统根据它的类型给它分配一定长度的内存单元,该内存单元的起始地址即为变量的地址。该内存单元的内容就是变量的值。直接访问和间接访问直接访问:用变量名直接从它对应的地址存取内容。如:intx=5,y=8,z=0;

2、z=x+y;580变量x变量y变量z22002202220413直接从x和y对应的地址2200和2202取出内容5和8然后相加将结果13存入变量z对应的地址2204的单元中。间接访问定义一个存放地址的变量p(p的地址1500),将x的地址2200存放在变量p中。通过变量p取出地址2200,再按此地址存取其中的内容,就间接的完成了对x的存取。当p的内容改为2202时,通过变量p取出地址2202,再按此地址,存取的就是变量y的内容。p就是指针变量580变量x变量y变量z22002202220422001500变量p2202指针

3、变量的定义一般形式:基类型名*指针变量名说明:基类型名:指针变量所指向的变量的类型名称指针变量名:所定义的指针变量的名称*:表示它后面的变量名是指针类型功能:(1)定义该指针变量名为指向基类型的指针变量,为该变量分配存储单元,其长度等于存储地址的字节数。(2)基类型确定用指针变量“间接”存取数据的存储单元个数和存储形式。该变量只能指向基类型数据。指针变量的初始化用=&变量名来给指针变量赋初值。选项中的变量名必须是已定义过的,其类型必须与基类型一致。表示将它对应的地址值赋给所定义的指针变量。例如:intx,p=&x;intx

4、,*p=&x;intx;float*p=&x;可以用赋值语句给指针变量赋值:floaty,*py;py=&y;指针变量的引用引用指针变量的指针值与引用其它类型的变量一样直接用它的变量名引用指针变量所指向的变量时,用“*指针变量名”注意:①指针变量的值与它所指向变量的值之间的差别②指针变量只有正确赋值后才能通过它访问指向的变量。xintx;pp=&x;&xint*p;*p*p=5;5指针变量的运算1.&:取地址运算符,取右边变量的地址2.*:指向运算符(间接访问运算符),访问指针变量右边所指向的变量。&a是变量a的地址*p是

5、指针变量p指向的变量。说明:“&”和“*”都是单目运算符,它们的优先级相同,按自右而左方向结合。如果已定义floata,*p=&a;则*p是变量a&*p是变量a的地址p&*p等价于p而&a是变量a的地址p*&a是p所指向的变量a*&a等价于a注意(1).指针变量定义和引用指向变量的“*”含义有差别。(2).不能引用没有赋值的指针变量,不要误认为p定义后变量*p就已存在,必须给p正确赋值后,变量*p才存在。(3).p=&a;是给指针变量p赋值,*p=3;是给p指向的变量赋值。两者含义完全不同。(4).给指针变量赋值必须用同类

6、型的指针。(5).指针变量只存放地址,地址值是无符号整数,但不能直接用整型量(或其它非地址量)赋值给指针变量。int*p1=2200;给变量赋值的两种方法1.直接访问用变量名如:inti;i=5;2.间接访问通过指向变量i的地址的指针变量p赋值如:inti,*p;p=&i;*p=5;取地址运算符&和指向运算符*的应用main(){intm,n;int*p=&m,*q=&n;printf("Inputm,n:");scanf("%d%d",p,&n);printf("m=%d&m=%X",m,&m);printf("*p

7、=%dp=%X",*p,p);printf("n=%d&n=%X",n,&n);printf("*q=%dq=%X",*q,q);}运行结果:Inputm,n:123456m=123&m=FFD6*p=123p=FFD6n=456&n=FFD8*q=456q=FFD8{intx,y;xyp1pp2int*p,*p1,*p2;p1=&x;p2=&y;&x&y86x=8;y=6;printf("min=%d,max=%d",*p1,*p2);}p1=p2;&yif(x>y){p=p1;&xp2=p;}&xma

8、in()运行结果:min=6,max=8例:通过交换指针变量值按大小顺序输出指针变量作为函数的参数以指针类型为函数的参数,作用是将变量的地址传入函数。intx,y;int*pt1;*pt2;x=8;y=6;pt1=&x;pt2=&y;if(x>y)swap(pt1,pt2);printf("x=%d,y

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

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

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