从品牌网站建设到网络营销策划,从策略到执行的一站式服务
可以通过函数指针(也就是你说的函数地址)调用,可以这样使用:
成都创新互联公司是一家以重庆网站建设、网页设计、品牌设计、软件运维、seo优化、小程序App开发等移动开发为一体互联网公司。已累计为餐厅设计等众行业中小客户提供优质的互联网建站和软件开发服务。
#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
函数的地址是在代码空间中,在编译时就分配好了。
代码空间就是系统中存放你写的代码的地方,不同的行地址当然就不一样咯
变量是存放在内存中的,只要是存放在内存中的二进制数就会有一个内存的地址,所有变量是有地址的!
那函数是什么呢?函数是由一些运行的语句组成的,程序运行的时候就会把函数中的语句调用到内存中去,那么函数代码在内存中开始的那个内存空间的地址就是函数的地址!
至于函数中用的变量的地址并不是放在代码区的,一般都放在另外的两个地方,其实地址上是有很大的差值的
希望你能理解上面的内容,祝愿你学习C语言能马到成功!
是。在C语言中,一个函数的函数名其实就是一个地址,即该函数的入口地址。我们可以声明一个函数指针,并将函数的入口地址(函数名)赋值给这个指针,然后使用这个指针来调用具体的函数。
#include stdio.h
void f()
{
}
void main()
{
printf("%u\n", f);
printf("%u\n", f);
printf("%p\n", f);
}
主函数中前两行%u表示输出无符号的十进制,而第三行%p表示输出地址,其结果是一个十六进制的数,你将其转换成十进制,你会发现与前两行结果一样。
首先函数返回一个指针类型即返回地址。
例:
int * func(void)
{
int a= 10;
int *p = a;
return p;
}
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图