指针&结构体指针.ppt

指针&结构体指针.ppt

ID:55735206

大小:92.50 KB

页数:16页

时间:2020-06-03

指针&结构体指针.ppt_第1页
指针&结构体指针.ppt_第2页
指针&结构体指针.ppt_第3页
指针&结构体指针.ppt_第4页
指针&结构体指针.ppt_第5页
资源描述:

《指针&结构体指针.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、指针及结构体指针基本概念指针使用数组与指针函数指针指针型函数返回值指针数组结构体指针及其使用链表基本概念内存地址系统内存区域中存储单元的组织序号以字节(byte)为最小单位地址连续变量变量名是系统中对象的命名系统对象保存在内存单元组变量值是存储单元组的内容*变量名是内存单元组起始地址的命名charchintishortmint*pa..0x3df800040x3df800080x3df8000a0x3df8000c...0x3df800ac........1024205'A'0x3df800ac865基

2、本概念(续一)指针是一个常量值是内存中某个地址!!通过指针可以访问它所指向的内存区域变量地址:变量所占存储单元的起始地址=>指针指针变量:内容或变量值是指针的变量类型限定符=>扩展类型存取方式---访问(R/W)变量或对象直接:根据变量名直接访问内容间接:通过指针访问它所指向的对象指针使用(续一)引用指针主要运算符&:取址运算符获取变量的地址*:取值运算符(或间接访问/递引用运算符)访问指针所指向的对象或变量例2、通过指针访问整型变量intmain(){inta;int*pa;pa=&a;//papoi

3、ntstoaprintf("%d,%d",a,*pa);//???,???a=20;printf("%d,%d",a,*pa);//20,20scanf("%d",&a);//15printf("%d,%d",a,*pa);//15,15return0;}0x8d30400420paa0x8d304004150x8d304004???指针使用(续二)特点&、*同级但高于算术运算符自右向左结合特殊形式的运算例3inta,*pa=&a;&*pa;//==*&a;//==允许++/--、+

4、/-按基类型增大或减少,变化为一个或多个基本类型所需空间的大小例4(*pa)++vs.*pa++pa+=2;pa=pa-1;0x8d304004???paa0x8d304008???paa'指针使用(续三)例5,假定每个整数占用4个字节inta;charch;int*pa=&a;//假定&a==0xc48d4024char*ps=&ch;//假定&ch==0xc48d4012pa++;//pa==0xc48d4028[+sizeof(int)]ps++;//ps==0xc48d4013[+sizeof

5、(char)]数组与指针二者关系数组的指针---数组名作为指针是数组的起始地址数组是内存连续区域,有起始/终止地址数组元素占用相同空间数组起始地址等于数组第一个元素地址数组元素指针变量---访问数组指向数组元素的同型指针变量数组元素有地址且连续可以遍历数组数组与指针(续一)基本用法以整型数组inta[5]={1,20,3,19,2}为例指针指向某个元素int*pa=&a[0];//第1个元素pa=&a[0];//或pa=a通过指针访问数组元素inti;读:i=*pa;写:*pa=7;//<=>a[0]=

6、7访问pa指向元素后面的第i个元素---(pa+i)*(pa+2)=5;//<=>a[2]=5pa+=i;//pa指向它后面第i个元素指向它前一个/后一个元素pa++/pa--用数组名访问元素*(a+4)=4;//<=>a[4]=41-->7203-->5192-->4a[0]a[4]pa&a[0]函数指针函数是一个可执行例程的入口点地址函数名是一个地址常量可以作为函数参数函数指针:指向函数的指针指针变量的值是函数入口地址访问函数指针指向的对象=>函数调用用法定义语法(*pfn

7、)([])pfn必须包含在括号内函数指针(续一)使用pfn作为指针变量存在例1、使用函数指针求最大值p261intmain(){intmax(inta,intb);int(*pmax)(int,int);intx,y,z;pmax=max;printf("inputtwonumbers:");scanf("%d%d",&x,&y);//1033z=(*pmax)(x,y);printf("maxmum=%d",z);//maxmum=33return0;}intmax(int

8、x,inty){return(x>y?x:y);}....pmax...max函数指针(续二)*函数指针是扩展类型,可作为返回值函数指针作为参数例2、获得数组中最大值元素intmax2(inta,intb);intmaxX(int(*pf)(int,int),intA[],intn){inti,max;max=A[0];for(i=0;i

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

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

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