c语言,唐浩强版ppt课件.ppt

c语言,唐浩强版ppt课件.ppt

ID:58886420

大小:516.00 KB

页数:57页

时间:2020-09-30

c语言,唐浩强版ppt课件.ppt_第1页
c语言,唐浩强版ppt课件.ppt_第2页
c语言,唐浩强版ppt课件.ppt_第3页
c语言,唐浩强版ppt课件.ppt_第4页
c语言,唐浩强版ppt课件.ppt_第5页
资源描述:

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

1、第十章指针预备知识内存:就是内部存储器,是由存储单元组成的。它的特点是存储单元是线性连续的。存储单元的最小单位是字节。1.内存的概念地址:为了访问内存中的某个存储单元,我们要为它编号,这种编号称为内存地址。通过地址我们就能够访问该地址所标识的存储单元。2.地址的概念变量的地址:变量在内存中总占用几个连续的字节,开始字节的地址,就是变量的地址。2007存储单元§10.1指针及其相关概念指针:一个变量的地址称为该变量的指针。指针变量:若一个变量专用于存放另一个变量的地址(指针),则该变量称为指针变量。直接访问与间接访问直接访问:按变量地

2、址存取变量值间接访问:通过存放变量地址的变量去访问变量例i=3;-----直接访问指针变量…...…...2000200420062005整型变量i变量p20012002200320003例inti=3,*p;p=&i;-----间接访问§10.2变量的指针和指向变量的指针变量定义指针变量的说明⑴变量名p前面的“*”不能省略,如写成int*p1,p2;则p2被定义为整型变量,而非整型指针变量。一、指针变量的定义一般形式:基类型*指针变量名;例如:inti,*p;p=&i;用来指定该指针变量可以指向的变量的类型。在定义指针变量时必须指

3、定基类型。(因为不同类型的变量在内存中所占字节数不同,这就涉及到指针移动时,移动一步越过几个字节的问题)把一个整型变量的地址赋给一个指针变量,即实现指向。指针变量前面的*表示该变量的类型为指针型变量。⑵定义中的“*”表示所定义的变量是指针变量,但指针变量名是p1、p2,而非*p1、*p2。⑶指针变量只能指向定义时所规定类型的变量。这个规定的类型称为该指针变量的“基类型”。如上例中p只能指向整型变量,不能指向实型或字符型变量。其“基类型”相同,是整型。⑷定义指针变量后,并未确定该变量指向何处。也就是说该变量的值是不确定的。在引用指针变

4、量前必须首先让它指向一个变量。如inti,*p;p=&i;二、指针变量的引用“&”(地址运算符)取变量的存储地址。如:&a求变量a的地址。取指针所指向变量的内容。&与*优先级相同,但按自右至左的结合方向。“*”(引用运算符)3i(i的地址2000)2000p*pi*p&ipi=3;*p=3例如:inti=3,*p;p=&i;由此可见:通过指针运算符“*”可以引用一个变量。如:当p已经指向变量i后,*p就等同于i。*ptr=15;等价于i=15;例1:main(){inta,b,*p1,*p2;a=100;b=10;p1=&a;p2=

5、&b;printf(“%d,%d”,a,b);printf(“%d,%d”,*p1,*p2);}运行结果:100,10100,10(1)&*p1的含义:p1中存放的是a的地址,*p1先结合即为a,再和&结合即为a的地址。&*p1=&a(2)*&a的含义:&a先结合即a的地址(相当于P1),然后再与*结合(相当于*p1),即a的值。(3)(*p)++的含义:*p相当于a,所以(*p)++相当于a++。*p++由于*与++优先级相同,由于++在后,先求*p,再求p++,p就不再指向a了。例2:输入a和b两个整数,按先大后小的顺序

6、输出。main(){inta,b,*p1,*p2,*p;scanf(“%d”,&a);scanf(“%d”,&b);p1=&a;p2=&b;if(a

7、(int*p1,int*p2){inttemp;temp=*p1;*p1=*p2;*p2=temp;}main(){inta,bscanf(“%d%d”,&a,&b);swap(&a,&b);printf("%d,%d",a,b);}swap(intx,inty){inttemp;temp=x;x=y;y=temp;}main(){inta,b;scanf("%d,%d",&a,&b);swap(a,b);printf("%d,%d",a,b);}swap(int*p1,int*p2){inttemp;temp=*p1;

8、*p1=*p2;*p2=temp;}main(){inta,b,*p1,*p2;p1=&a;p2=&b;scanf(“%d%d”,p1,p2);swap(p1,p2);printf("%d,%d",a,b);}定义为*temp?例

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

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

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