|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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为参数的函数'的指针。在实际中少用这类写法,不容易理解。 |
评分
-
查看全部评分
|