(7)--8、函数指针及指针的指针.ppt

上传人:奉*** 文档编号:96384382 上传时间:2023-11-19 格式:PPT 页数:15 大小:2.82MB
返回 下载 相关 举报
(7)--8、函数指针及指针的指针.ppt_第1页
第1页 / 共15页
(7)--8、函数指针及指针的指针.ppt_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《(7)--8、函数指针及指针的指针.ppt》由会员分享,可在线阅读,更多相关《(7)--8、函数指针及指针的指针.ppt(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C语言的精髓语言的精髓指针指针指针与函数指针与函数指针的指针指针的指针2023/11/1822学习目标学习目标v理解函数指针的概念 v掌握定义函数指针变量v理解指针的指针的概念v理解动态内存申请2023/11/183指针与函数指针与函数v函数名本身就是一个指针(地址值)vC中函数指针是一种指针类型,其指向一个函数的首地址函 数 指 针 变 量 定 义:返回值 (*变量名)(参数1,参数2,参数n);int(*fp)(int,int);/就是声明一个函数指针变量fp,其指向一个输入为两个int型参数,输出为int型的函数。2023/11/184函数指针变量函数指针变量v函数指针变量v示例:int

2、 add(int a,int b)return a+b;int(*padd)(int a,int b);/定义函数指针变量 padd=add;/给指针赋地址值或者:padd=&add;前一种方式是显式赋值,后一种是隐式赋值。两者是等同的。2023/11/185函数指针变量函数指针变量v函数指针变量可以当成函数一样来使用!v示例:int add(int a,int b)return a+b;int(*padd)(int a,int b);/定义函数指针变量 padd=add;/给指针赋地址值 padd(2,3);或者(*padd)(2,3);/两者都相当于执行add(2,3),结果为5代码演示2

3、023/11/186函数指针函数指针变量示例变量示例1v函数指针主要可以用于两个场景中:菜单设计和函数参数v函数指针用于菜单设计示例:void Display()printf(函数指针可以做函数参数n);void Test(void(*fp)()fp();int main(int argc,char*argv)void(*p)()=Display;Test(p);return 0;代码演示2023/11/187函数指针函数指针变量示例变量示例2v简易计算器体现了函数指针在菜单设计中的应用:代码演示#include#include#include int main(int argc,char*a

4、rgv)int(*p4)(int,int)=Add,Sub,Mul,Div;int a,b;int select;int result;while(1)system(“cls”);/清屏printf(简容易计算器菜单n);printf(1:+n);printf(2:-n);printf(3:*n);printf(4:/n);printf(0:退出n);printf(n请输入两个整数:n);scanf(%d%d,&a,&b);printf(请输入你的选择:n);scanf(%d,&select);if(select=0)break;else if(select4)printf(选择错误!n);e

5、lseresult=pselect-1(a,b);printf(计算结果为:%dn,result);getch();return 0;int Add(int a,int b)return a+b;int Sub(int a,int b)return a-b;int Mul(int a,int b)return a*b;int Div(int a,int b)if(b!=0)return a/b;elseprintf(errorn);exit(-1);2023/11/188指针的指针指针的指针v常见的指针的指针类型:int*/整型指针的指针类型 char*/字符型指针的指针类型 float*/浮

6、点型指针的指针类型2023/11/189指针的指针指针的指针 int a=10;int*p=&a;int*q=&p;0 x0019FF800 x0019FF3C100 x0019FF3C0 x0019FF800 x0019FF64指向整型指针变量p的指针 q指向整型变量a的指针 p整型变量 a2023/11/1810指针的指针指针的指针指针的指针可用于操作指针数组!如下示例:char *name3=“zhangsan,”lisi“,wangwu”;char*p=name;for(int i=0;i3;i+)printf(“%sn”,pi);2023/11/1811指针的指针示例指针的指针示例v

7、oid sort(char*p,int n)int i,j;char*temp;for(i=1;in;i+)for(j=0;j0)temp=pj;pj=pj+1;pj+1=temp;void main()char*name3=“zhangsan”,“lisi”,“wangwu”int i;sort(name,3);for(i=0;i3;i+)puts(namei);代码演示2023/11/1812指针小结指针小结v1、普通指针:int*p;v2、一维数组指针:int*p;int a=10;int*p=&a;int a3=1,2,3;int*p=a;2023/11/1813指针小结指针小结v3、

8、二维数组指针:int(*p)N;v4、指针数组:int*aN;v5、指针的指针:int*p;int a23=1,2,3,4,5,6;int(*p)3=a;int a=1,b=2,c=3;int*a3=&a,&b,&c;int*a3=&a,&b,&c;int*p=a;2023/11/1814指针小结指针小结v6、函数的指针:int(*p)(形参列表)v7、返回值是指针的函数:int*p(形参列表);int fun(int a,int b);int(*p)(int a,int b);p=fun;int*p(int a,int b)return&c;2023/11/1815谢谢大家!谢谢大家!谢谢大家!谢谢大家!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁