c语言函数名储存地址吗 c语言函数名实际上是函数的入口地址
c语言中函数名就是地址吗
函数名在主函数里是个接口或者叫入口,你可以通过定义一个指针来指向他
创新互联主要从事网站制作、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务南康,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
void * p;
int fun(int a);
p=fun;
C语言中,函数名代表函数的入口地址吗!!!求大神!求解析
要知道main函数也是由其他的程序调用的。
我们编写的程序,最终是不存在所谓的函数名的,有的只有内存单元地址0xffeedd00.
我们的程序执行时,程序加载到内存,比方说整个程序所占用的内存范围是0xffee0000 ~ 0xffeedd00,这么多。
假设程序有一个小函数fun(),那么它的范围可能是0xffee0000~0xffee00ff。
那么函数fun()的入口地址是多少? 0xffee0000。。
那么函数名fun实际上就是0xffee0000的别称。
你用一个指针指向这个函数,那么你把 指针 = 函数名,实际就是把0xffee0000这个内存单元的地址给指针p。
所以,结论是:
函数名 是 程序在执行时, 函数所占内存单元块的 首地址 的别称。
C语言中函数名不是代表函数存储单元的首地址吗?为什么*函数名=函数名?
感觉你说的是 “指向函数的指针变量”
可以定义一个 函数指针变量,然后将一个函数名赋值给这个函数指针变量。
很多函数 是把一个函数指针 作为 参数来传递的。
举例:
int c,d;
int (*p)(int a,int b); //声明一个函数指针类型的变量,变量名为p,其类型是 int *(int a,int //b)
int func1( int a,int b);//声明一个函数1
int func2(int f,int g);//声明一个函数2
p=func1; //将一个函数名赋值给一个函数指针变量
c=(*P)(34,69); //使用指针调用函数fun1
p=func2;
d=(*p)(50,90); //使用函数指针 调用函数func2
其它细节这里就不详细解答了,希望我的回答对你有点帮助,很高兴和你一起讨论和学习。
在c语言中,函数名也称为函数的指针,那函数名是否也占内存空间?
函数名是 函数所占内存空间 的首地址,当然也占内存空间啦!跟数组名一样
文章标题:c语言函数名储存地址吗 c语言函数名实际上是函数的入口地址
浏览路径:http://myzitong.com/article/ddjggoi.html