c语言中指向函数的指针,c语言中指向函数的指针是什么

C语言——指向函数的指针

c语言中叫做回调函数,将函数指针(如max)作为函数的参数,函数(如fun)中调用这个参数指向的函数,

创新互联是一家专业提供永济企业网站建设,专注与网站设计、做网站HTML5、小程序制作等业务。10年已为永济众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

调用函数(fun)时看情况而给函数传入不同的函数指针

例如fun(a,b,min),那么fun函数调用执行三个参数就调用min函数

参数的定义要与传入的函数指针相匹配

例如fun(int,x,int y,(*p)(int,int)) 那么调用fun(a,b,min)时,min的参数必须是(int ,int)

C语言指向函数的指针 求翻译

#include stdio.h

int f1(int (*f)(int));//函数指针

int f2(int i);

int main(void)

{

printf("Answer:%d\n",f1(f2));//指向f2

return 0;

}

int f1(int (*f)(int))//定义函数指针

{

int n=0;

while((*f)(n)) n++;//回调函数,当指针不是NULL时,代入n

return 0;

}

int f2(int i)

{

return i*i+i-12;

}

//也就是每个函数入口都是一个地址

//函数无它,唯指令集合而已,上面只是换个地址执行指令而已

C语言指向函数的指针

选B

f是一个变量,不是函数名字,所以不选D

int* f;这样才是指向int类型的指针,所以A错

c语言:关于指向函数的指针编程

#include stdio.h

#include stdlib.h

#include string.h

void virtualFun(int choice, int n, char *str[], char *(*p)(int , char **));

char *maxs(int n, char *s[]);  //此函数通过指向函数的指针调用

char *mins(int n, char *s[]);  //此函数通过指向函数的指针调用

char *minc(int n,char *s[]);   //此函数通过指向函数的指针调用

void Menu();

char *(*func)(int n, char **);

int main() {

char *name[]={"FOLLOW ME","BASIC","GREAT WALL ","FORTRAN","COMPUTER DESIGN"};

int n=5;

char ch=0;

while (ch!=4) {

Menu();

ch = getchar();

getchar();//ignore '\n'

ch = ch - '0';

virtualFun(ch, n, name, func);

}

return 0;

}

void virtualFun(int choice, int n, char *str[], char *(*p)(int n, char **name)) {

switch(choice) {

case 1: //max string

p = maxs;

break;

case 2:

p = mins;

break;

case 3:

p = minc;

printf("[result is :%c]\n", *p(n, str)); //because the return is a char

default:

return;

}

printf("[result is :%s]\n", p(n, str));

}

char *maxs(int n, char *s[]) {

int i;

char *max = s[0];

for (i=1;in;i++) {

if (strcmp(max, s[i])0)

max = s[i];

}

return max;

}

char *mins(int n, char *s[]) {

int i;

char *min = s[0];

for (i=1;in;i++) {

if (strcmp(min, s[i])0)

min = s[i];

}

return min;

}

char *minc(int n, char *s[]) {

int i;

char ch = s[0][0], *p, *r=s[0];

for (i=0;in;i++) {

p = s[i];

while(*p++) {

if (*p0x20  ch*p) {

ch = *p;

r = p;

}

}

}

return r;

}

void Menu() {

char menu[] = "1  max string\n\

2  min string\n\

3  min char \n\

4  exit\n";

printf("%s", menu);

}


分享名称:c语言中指向函数的指针,c语言中指向函数的指针是什么
网站URL:http://myzitong.com/article/hcsjec.html