c语言函数指针何时使用 c语言函数指针和指针函数

c语言中函数指针是什么 有什么用 举个实例

函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。

成都创新互联,为您提供网站建设公司网站制作、网站营销推广、网站开发设计,对服务成都围栏护栏等多个行业拥有丰富的网站建设及推广经验。成都创新互联网站建设公司成立于2013年,提供专业网站制作报价服务,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏心悦目的作品。 与客户共同发展进步,是我们永远的责任!

函数指针有两个用途:调用函数和做函数的参数。

函数指针的声明方法为:

返回值类型 ( * 指针变量名) ([形参列表]);

如:

int func(int x); /* 声明一个函数 */

int (*f) (int x); /* 声明一个函数指针 */

f=func; /* 将func函数的首地址赋给指针f */

或者使用下面的方法将函数地址赋给函数指针:

f = func;

赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。

下面的程序说明了函数指针调用函数的方法:

#includestdio.h

int max(int x,int y){return (xy? x:y);}

int main()

{

int (*ptr)(int, int);

int a, b, c;

ptr = max;

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

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

printf("a=%d, b=%d, max=%d", a, b, c);

return 0;

}

"'>在C语言指针中 什么时候用 "." 什么时候用 "->"

当左边是个对象时用“.”

当左边是个指向对象的指针时用“-”

比如,Class A;

Class *B=A;

A有函数myfun()

则调用时用

A.myfun();

B-myfun();

c语言函数指针怎么用啊?尤其是main函数

main()

{int x,n;

scanf("%d%d",x,n);

pn(x,n);

printf("%d",pn); //你这里写的不正确,你把pn当作返回值了,其实它是个函数指针,printf的第二个参数可以是指针也可是值,所以编译可以通过,若显示也显示的是pn这个函数的地址值

}

/////////////////可以这样写,用个变量p做传递

main()

{int x,n;

int p;

scanf("%d%d",x,n);

p=pn(x,n);

printf("%d",p); //用p做传递

}

--------------------------------------

是这样的,我又仔细看了

#includemath.h

pn(int x,int n)

{int p;

if(n==0) p=1;

if(n==1) p=x;

if(n=1) p=((2*n-1)*x-pn(x,n-1)-(n-1)*pn(x,n-2))/n;

return p;

} //这个会比较三次,尤其是n=1时,p=x,又进行了p=1的调用,结果就错啦,试着把n=1的''去掉

pn(int x,int n)

{int p;

if(n==0) return(1);

if(n==1) return(x);

if(n=1) return(((2*n-1)*x-pn(x,n-1)-(n-1)*pn(x,n-2))/n);

} //这个比较的次数和值n有关

另外,虚机团上产品团购,超级便宜

C语言 函数指针 的调用问题?函数指针 怎么用?最好有例子。。

#includestdio.h

//定义类型fun_ptr,它是一个函数指针,指向的函数返回值为int,参数为int

typedef int (*fun_ptr)(int);

//fun1

int fun1(int a)

{

printf("call fun1,pram=%d,return %d+1\n", a, a);

return a+1;

}

//fun2

int fun2(int a)

{

printf("call fun2,pram=%d,return %d+2\n", a, a);

return a+2;

}

int main(int argc, char *argv[])

{

int a = 10;

int s = 0;

//定义函数指针类型的变量p_fun

fun_ptr p_fun;

//指向fun1

p_fun = fun1;

//执行

s=p_fun(a);

printf("s=%d\n", s);

//指向fun2

p_fun = fun2;

//执行

s=p_fun(a);

printf("s=%d\n", s);

return 0;

}

执行结果:


分享文章:c语言函数指针何时使用 c语言函数指针和指针函数
链接分享:http://pwwzsj.com/article/ddcgcpo.html