/*
返回指针的函数
*/
//返回 char 类型的指针,返回字符串,如果不带*,则返回字符
char *testM(){
return "rose";
}
int main()
{
char *name = testM();
printf("name = %s\n",name);//输出结果为:name = rose
return 0;
}
/*
指向函数的指针
*/
void test()
{
printf("调用了 test 函数\n");
}
double haha(double d, char *s, int a)
{
}
int main()
{
/*
定义指向函数的指针:
(*p)是固定写法,代表指针变量 p 将来肯定指向函数
左边的 void:指针变量 p 指向的函数没有返回值
右边的():指针变量 p 指向的函数没有形参
*/
//无返回值,无形参
void (*p)();
//有返回值,有形参
double (*p)(double, char *, int);
p = haha;
//或者
double (*p)(double, char *, int) = haha;
//数组名代表数组的地址,同理,函数名代表函数的地址
//指针变量 p 指向了 test 函数
p = test;
//调用方法的三种方式
//1.间接调用,由上可知,p 和 test 是等价的
p();
//2. 利用指针取出所指向的函数,然后调用函数,即利用指针变量间接调用函数
(*p)();
//3. 直接调用函数
test();
return 0;
}