扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
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有关
另外,虚机团上产品团购,超级便宜
#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语言中引用和指针的用法很相似,在做函数参数时都是传递变春睁量的地址,而不是传递一个变量的副本,都可以返回对参数变量的修改。主要区别在于参数的传递形式上。消祥
指针的形式类似于 : int *pInt;
引用的扒桥岁形式类似于 : int pInt;
C语言中函数指针与普通指针没什么差别,只是指向的内容不同而已。主要作用:
1、实现面向对象编程中的多态性埋判。
2、回调函数。
函数指针是指向函数的指针变量。因此“函数指针”本身首先应是指针变量,正手只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。
C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。举液嫌有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。
函数指针有两个用途:调用函数和做函数的参数。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流