可以通过函数指针(也就是你说的函数地址)调用,可以这样使用:
十余年的临河网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整临河建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“临河网站设计”,“临河网站推广”以来,每个客户项目都认真落实执行。
#include
int
fun(int
a)
{
printf("a
=
%d\n",
a);
printf("hello
world\n");
}
int
main()
{
int
(*pFun)(int
a);
pFun
=
fun;
(*pFun)(123);
return
0;
}
输出结果:
123
hello
world
1、值传递:不管怎么传,原来的实参的值都不会改变。
地址传递,原来的实参的值可能被改变。
打个比方:
值传递就好象你告诉别人你的帐户里有多少钱 帐户里的钱不会改变。
地址传递就好象你告诉别人你的帐户密码 帐户里面的钱可以被改变。
2、例如:
#includestdio.h
point(char *pt)
main()
{char b[4]={'m','n','o','p'},*pt=b;
point(pt);
printf("%c\n",*pt);
}
point(char *p)
{p+=3;
*p='F';}//加上这一句就变了
f(a); //调用函数f,q指向a数组的第1个位置即指向a[0]
i=0;[i=0]
i5成立开始循环:(*q)++;q指向的单元自加1,a数组[2,2,3,4,5]
i++;[i=1],i5成立继续循环:(*q)++;q指向的单元自加1,a数组[3,2,3,4,5]
i++;[i=2],i5成立继续循环:(*q)++;q指向的单元自加1,a数组[4,2,3,4,5]
i++;[i=3],i5成立继续循环:(*q)++;q指向的单元自加1,a数组[5,2,3,4,5]
i++;[i=4],i5成立继续循环:(*q)++;q指向的单元自加1,a数组[6,2,3,4,5]
i++;[i=5],i5不成立结束循环
输出a数组
注意q指针的内容一直没变,如果要变需要写成q++;而不是(*q)++;