马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Kotori 于 2017-8-16 22:25 编辑
指针函数和函数指针
1>指针函数
函数的类型指的是函数返回值的类型。因此,指针函数指的是返回值的指针的函数。
定义形式:函数类型 *函数名 (参数列表)char *pstr(int num)
{
if (num%2==0)
{
return "AAAAA";
}
else
{
return "BBBBB";
}
}
上面的函数返回一个字符的指针,但需要注意是:不要返回局部变量的指针。因为函数结束后,内存会释放,该局部变量的地址就会失去意义。而上方代码中的是字符串常量,在编译后,这些内容并不存在于函数中,所以能正常返回地址。
2>函数指针
函数指针是指向函数的指针。可以通过指针加参数调用函数。
定义形式:函数类型 (*函数指针名)(参数列表)
注意:参数列表指的是指向的函数的参数列表。
3>函数指针作为参数
函数指针可作为参数传递给另一个函数,通过传入的函数名来确定调用的函数。int mul(int a, int b);
int divi(int a, int b);
int calc(int (*fp)(int, int), int a, int b)
{
return (*fp)(a, b);
}
calc(mul, a, b); //调用mul函数
calc(divi, a, b); //调用divi函数
4>函数指针作为返回值
函数指针作为一类指针,也可以作为函数的返回值。int (*fp(char, char))(int a, int b);
函数fp接收两个char作为参数,返回一个'返回值是int,有两个int为参数的函数'的指针。在实际中少用这类写法,不容易理解。 |