c语言 指针 详解课件.ppt

c语言 指针 详解课件.ppt

ID:57056854

大小:579.00 KB

页数:59页

时间:2020-07-30

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

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

1、指针18.1指针和地址变量是存放在内存上的,内存的每一个字节成为一个单元,每个单元有一个编号,这个编号就是地址,内存是按字节排列的连续空间。定义变量:intk;编译系统根据类型为k分配内存输入变量的值:scanf("%d",&k);&k就代表了变量k在内存中的地址以往对变量的访问是通过变量名,这种操作称为直接访问:intk;scanf("%d",&k);printf("%d",k);关于地址2C提供了另一种方式,将变量k的地址存放在另一个变量处(假定为pk),通过访问pk,就可以间接地访问变量k,这种方式称为间接访问变量intk;变量pk中存放k在内存中的地址变量pk就是一个

2、指针变量,指向变量k,存放k的地址因此:指针就是地址100intk=100&k&kint*pk间接访问3main(){inta,b,c;a=5;b=10;c=a+b;printf("%d,%d,%d",a,b,c);}main(){inta,b,c,*pc;a=5;b=10;pc=&c;c=a+b;printf("%d,%d,%d",a,b,*pc);}利用变量c的变量名直接访问利用指针变量*pc间接访问变量c4指针可以指向所有类型的数据指针指向变量--变量的指针(存变量的地址)指针指向数组--数组的指针(存数组的起始地址)指针指向函数--函数型指针(存放函数的入口地址)指针指向

3、指针--指针型指针(存放某指针的地址)由指针组成的数组--指针数组指针是定位其他数据类型的特殊类型的数据(存放其他数据的地址)58.2指针变量一个指针,指向一个变量8.2.1指针变量定义格式:类型*标识符int*pa;其中:指针的类型,是指针所指的变量的类型*为指针说明符,说明后面的标识符为指针变量(也叫间接访问符)应该注意几点:p22368.2.2指针变量赋值1指针变量的初值必须是地址值(不能是整数)2方法有两种:(1)intk;int*pk=&k;(2)intk,*pk;pk=&k;地址:数组名&变量名7main(){inta,b,c;int*p;(指针说明)a=100;b=

4、200;p=&c;(将c的地址赋给p)*p=a+b;(将a+b的值存储在p指向的地址)printf("%d+%d=%d",a,b,*p);printf("%x,%x,%x,%x,%x",&a,&b,&c,p,&p);}100200300abcp81程序中一旦进行了变量说明inta,b,c;则机器自动设置a,b,c的存储区域,每个整数在TC中占两个字节,在VC占4个字节。2当a=100,b=200时,则分别存在a,b的空间内。3为便于了解存储区的位置,用&a表示a的地址,&b表示b的地址,&c表示c的地址。4变量p存放地址,p=&c,称为指针变量。5指针变量p自身也有地址,

5、用&p表示,。printf("%x",&p)可求得指针自身的存储地址。98.2.3指针运算符与指针表达式说明:(1)一个指针指向同一种类型的变量(2)*和&在C中的作用:*:乘号(双目)、指针说明符(单目)和指针所指向的内容&:取址符(单目)和位操作中的"与"intk;int*pk;当指针pk指向变量k时,有:pk==&k;*pk==k;所以:*(&k)==*pk==k&(*pk)==&k==pk*与&之间是互逆的互逆1取地址运算符&取内容运算符*p227108.2.4指针变量的引用对变量k的访问就可以有两种方法:直接访问:通过变量名--k间接访问:通过指针--*pk区别:定义指

6、针*pk引用指针:*pkinta,*pa;pa=&a;将变量a的地址赋给指针pa*pa==a;通过间接访问符可以访问变量a11例8.5#include"stdio.h"voidmain(){float*pi,x;scanf("%f",&x);pi=&x;printf("%.0f",*pi);}128.2.5指针变量作函数的参数主函数内,输入两个整数,调用一个功能函数,交换两个整数的大小.main(){inta,b;printf("Entertwonumbers:");scanf("%d,%d",&a,&b);swap(a,b);printf("%d,%d",a,b);

7、}swap(intx,inty){intc;c=x;x=y;y=c;}输入3,5输出3,5形参x,y是局部变量,函数内定义,函数内有效,函数调用结束,值不保留13指针作函数的参数可解决上述问题swap(int*p1,int*p2){intt;t=*p1;*p1=*p2;*p2=t;}main(){inta,b;int*q1,*q2;scanf("%d,%d",&a,&b);q1=&a,q2=&b;swap(q1,q2);printf("%d,%d",a,b);}输入3,535

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

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

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