关于辨析函数类型与函数指针类型,小白求解!!!!!!
#include <stdio.h>void hello(void)
{}
int main(void)
{
void (*hello_ptr)(void);
printf("hello:%p\n",hello);
printf("&hello:%p\n",&hello);
printf("*hello:%p\n",*hello);
hello_ptr=hello;
printf("hello_ptr=hello;\n");
printf("hello_ptr:%p\n",hello_ptr);
printf("&hello_ptr:%p\n",&hello_ptr);
printf("*hello_ptr:%p\n",*hello_ptr);
return 0;
}
我理解是 hello函数 首地址是004012F0 所以 第一条输出语句
printf("hello:%p\n",hello);
输出是其首地址(函数名做右值,自动加取地址符&?)输出是004012F0
第二条语句
printf("&hello:%p\n",&hello);
就是正常的输出的函数的首地址004012F0
第三条也纠结 理解为 函数hello 返回空类型 ??然后就直接输出地址了???
hello_ptr=hello; hello首地址给函数指针类型hello_ptr
第五条 与第一条一个道理 函数首地址前 自动补& 所以输出的还是地址
第六条 已经给出& 可是现在是取得函数指针的地址
第七条 跟第三条一样纠结。。
可以解释一下吗