1.函数名,就是函数的首地址,那么func与&func应该是不一样的,偶然看到别人说两种用法一样,所以决定试一试。
2.环境配置,VSCode;模块:C/C++ 0.29.0;编译器:MinGW,x86-64-8.1.0x86-64-8.1.0。
3.代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void func()
{
printf("hello,world\n");
}
typedef void (*FUNC)(void);//用typedef定义函数指针类型
int main(void)
{
printf("%p,%p\n",func ,&func);
FUNC func1 = func;
func1();
(*func1)();
func1 = &func;
func1();
(*func1)();
}
4.运行结果:
0000000000401550,0000000000401550
hello,world
hello,world
hello,world
hello,world
5.在用printf函数打印func,&func时,指向的地址是一样的