函数指针怎样传递

来源:互联网 发布:软件系统租赁合同 编辑:程序博客网 时间:2024/04/18 08:26

来看一段代码(代码没啥具体意义):

void  a(int* x){   return ++x;}void b(void (*p)(int* x)){   int y=5;   return *p(y);}void main(){    int a=1;    a(&x);    b(a);}

其实令我疑惑的是倒数第二行的b(a);这里直接把函数名a赋予b,可是我定义的b函数的入口参数是函数指针,这是怎么回事?

 

查了资料才知道,和数组名一样,函数名也代表着一个地址,也是就代码段的初始地址。

从理解上认为函数名也是指针,存储着代码段的初始地址。