#include<stdio.h>
void func(void){puts("成功调用");};
int main()
{
void(*p_func)(void)=func;
puts("func是函数名,p_func是指向该函数的指针,那么有:");
printf("func=%p\\\\n*func=%p\\\\n&func=%p\\\\
\\\\np_func=%p\\\\n*p_func=%p\\\\
\\\\n&p_func=%p",func,*func,&func,p_func,\\\\
*p_func,&p_func);
//puts("\\\\n接着我们尝试用上述变量调用函数:");
//func();
//(*func)();
//(&func)();
//(p_func)();
//(*p_func)();
return 0;
}
func是函数名,p_func是指向该函数的指针,那么有:
func=004015C0
*func=004015C0
&func=004015C0
p_func=004015C0
*p_func=004015C0
&p_func=0061FECC
<aside>
📢 可见func, f*unc, &func, p_func, p_func
代表的值都是func()
函数的地址* ( *&p_func
是指针的地址* )
</aside>
#include<stdio.h>
void func(void){puts("成功调用");};
int main()
{
void(*p_func)(void)=func;
puts("func是函数名,p_func是指向该函数的指针,那么有:");
printf("func=%p\\\\n*func=%p\\\\n&func=%p\\\\
\\\\np_func=%p\\\\n*p_func=%p\\\\
\\\\n&p_func=%p",func,*func,&func,p_func,\\\\
*p_func,&p_func);
puts("\\\\n接着我们尝试用上述变量调用函数:");
func();
(*func)();
(&func)();
(p_func)();
(*p_func)();
return 0;
}
func,p_func,*p_func,*func,&func
作函数名
puts("\\\\n接着我们尝试用上述变量调用函数:");
func();
(*func)();
(&func)();
(p_func)();
(*p_func)();
return 0;
}
**func是函数名,p_func是指向该函数的指针,那么有:**
func=004015C0
*func=004015C0
&func=004015C0
p_func=004015C0
*p_func=004015C0
&p_func=0061FECC
**接着我们尝试用上述变量调用函数:**
成功调用
成功调用
成功调用
成功调用
成功调用
<aside>
📢 可见func,p_func,*p_func,*func,&func
作函数名均可以实现函数调用
</aside>