文档详情

C语言程序设计 (29).docx

发布:2025-05-09约1.99千字共4页下载文档
文本预览下载声明

课题

第8章善于利用指针

课时

2

教学目的

要求

8.5指向函数的指针

教学重点

难点

指向函数的指针

主要内容及步骤

备注

导入新课

新课讲授

第8章善于利用指针

8.5指向函数的指针

课堂小结

布置作业

授课效果分析总结

教案

课程名称:C语言程序设计授课人:***

8.5指向函数的指针

8.5.1什么是函数指针

可以定义一个指向函数的指针变量,用来存放某一函数的起始地址,这就意味着此指针变量指向该函数。例如:

int(*p)(int,int);

定义p是指向函数的指针变量,它可以指向类型为整型且有两个整型参数的函数。p的类型用int(*)(int,int)表示

8.5.2用函数指针变量调用函数

例8.22用函数求整数a和b中的大者。

(1)通过函数名调用函数

#includestdio.h

intmain()

{intmax(int,int);

inta,b,c;

printf(pleaseenteraandb:);

scanf(%d,%d,a,b);

c=max(a,b);

printf(“%d,%d,max=%d\n,a,b,c);

return0;

}

intmax(intx,inty)

{intz;

if(xy)z=x;

elsez=y;

return(z);

}

(2)通过指针变量访问它所指向的函数

#includestdio.h

intmain()

{intmax(int,int);

int(*p)(int,int);inta,b,c;

p=max;

printf(pleaseenteraandb:);

scanf(%d,%d,a,b);

c=(*p)(a,b);

printf(“%d,%d,max=%d\n,a,b,c);

return0;

}

8.5.3怎样定义和使用指向函数的指针变量

定义指向函数的指针变量的一般形式为

数据类型(*指针变量名)(函数参数表列);

如int(*p)(int,int);

p=max;对

p=max(a,b);错

p+n,p++,p--等运算无意义

8.5.4用指向函数的指针作函数参数

指向函数的指针变量的一个重要用途是把函数的地址作为参数传递到其他函数

指向函数的指针可以作为函数参数,把函数的入口地址传递给形参,这样就能够在被调用的函数中使用实参函数

例8.24有两个整数a和b,由用户输入1,2或3。如输入1,程序就给出a和b中大者,输入2,就给出a和b中小者,输入3,则求a与b之和。

#includestdio.h

intmain()

{voidfun(intx,inty,int(*p)(int,int));

intmax(int,int);intmin(int,int);

intadd(int,int);inta=34,b=-21,n;

printf(pleasechoose1,2or3:);

scanf(“%d”,n);

if(n==1)fun(a,b,max);

elseif(n==2)fun(a,b,min);

elseif(n==3)fun(a,b,add);

return0;

}

intfun(intx,inty,int(*p)(int,int))

{intresout;

resout=(*p)(x,y);

printf(“%d\n”,resout);

}?

intmax(intx,inty)

{intz;

if(xy)z=x;

elsez=y;

printf(max=);

return(z);

}

intmin(intx,inty)

{intz;

if(xy)z=x;

elsez=y;

printf(min=);

return(z);

}?

intadd(intx,inty)

{intz;

z=x+y;

printf(sum=);

return(z);

}

显示全部
相似文档