//void Print(const char* str)
//{
// printf("%s\n", str);
//}
//int main()
//{
// (*(void(*)())0)();//将0地址处的函数强制转换位无类型的函数指针,解引用并调用
// void(*p)(const char*) = Print;
// void(*signal(int, void(*)(int)))(int);
// //signal是一个函数指针,函数的两个参数(int类型,函数指针返回void的类型)
// //signal的返回类型是一个函数指针,指向的函数参数是int类型,返回void的类型
// typedef void(*pfun_t)(int);//函数指针 函数名和*在一起
// pfun_t signal(int, pfun_t);//和上述signal函数表述相同
//
// typedef unsigned int uint;
// (*p)("hello bit");
// return 0;
//}
//int Add(int x, int y)
//{
// return x + y;
//}
//int Sub(int x, int y)
//{
// return x - y;
//}
//int Mul(int x, int y)
//{
// return x * y;
//}
//int Div(int x, int y)
//{
// return x / y;
//}
//int main()
//{
// int a = 10;
// int b = 20;
// Add(a, b);
// printf("%p\n", Add);
// printf("%p\n", &Add);//&Add Add都是函数的的地址
// int(*pa)(int,int) = Add;//函数指针——指向函数的指针 存放函数地址
// printf("%d\n", pa(2, 3));//*可以省略
// printf("%d\n", (*pa)(2, 3));
// //*pa(2,3) err 错误写法
// int(*paa[4])(int, int) = {Add,Sub,Mul,Div};//函数指针数组
// int i = 0;
// for (i = 0; i < 4; i++)
// {
// printf("%d\n", paa[i](2, 3));
// }
// return 0;
//}
//char* My_syrcpy(char* dest, const char* src){}
//int main()
//{
// char*(*pf)(char*, const char*) = My_syrcpy;
// char*(*pfarr[4])(char*, const char*) = { My_syrcpy };
// return 0;
//}