//1、
//返回值 函数名 (参数列表)
void func (int a)
{
qDebug("hello world");
}
int main(void)
{
//函数指针 去指向 函数的地址 = 注意右侧的强转小括号
void (*pFuncPointer) (int ) = (void(*)(int )) 4199952
pFuncPointer(1);
}
//2、参数加个char b
void func (int a, char b)
{
qDebug("hello world");
}
int main(void)
{
//函数指针 去指向 函数的地址 = 注意右侧的强转小括号
void (*pFuncPointer) (int, char ) = (void(*)(int, char )) 4199952
pFuncPointer(1, 'a' );
}
数组指针和函数指针的定义方式:
//数组指针定义
{
int arr[5];
int(*ARRAY)[5];
}
//函数指针的定义方式
void func()
{
printf("hello world")
}
void test01()
{
//先定义出函数类型,再通过类型定义出函数指针
typedef void (FUNC_TYPE)();
FUNC_TYPE * pFunc = func;
pFunc();
}
void test02()
{
//先定义出函数指针类型, 再定义函数指针
typedef void (*FUNC_TYPE)();
FUNC_TYPE pFunc = func;
pFunc();
}
void test03()
{
//直接定义函数指针变量
Void (*pFunc)() = func;
pFunc();
}
函数指针数组:
//函数指针的数组
void func1()
{
printf("func1的调用\n");
}
void func2()
{
printf("func2的调用\n");
}
void func3()
{
printf("func3的调用\n");
}
void test04()
{
//函数指针数组的定义
void(*pFunc[3])();
pFunc[0] = func1;
pFunc[1] = func2;
pFunc[2] = func3;
for(int i = 0; I < 3; i++)
{
pFunc[i]();
}
}
//函数指针 和 指针函数的区别???
//函数指针 是指向函数的指针
//指针函数 函数的返回值是一个指针的函数
//例:int * p();
int main(void)
{
test03();
system("pause");
}