一、指针函数
1.一个函数,它的返回值是一个指针,用于指向某个变量的地址。
2.例如,传递写一个函数用于返回一个字符串
#include <stdio.h>
char *getword(char c);
char *gerword(char c)
{
switch(c)
{
case 'A':return 'Apple';
case 'B':return 'Bag';
case 'C':return 'Cat';
case 'D':return 'Dog';
default: return 'none';
}
}
int main()
{
int c;
printf("please input A or B or C or D:");
scanf("%c",&c);
printf("you can get a word %s",getword(c);
}
attention:不可以用局部变量作为返回值!
二、函数指针
1.一个指针,用于指向函数,定义指针使时,使用指向的函数的返回类型和参数。
2.例如,利用函数指针计算一组数字的相加和相减。
#include <stdio.h>
//声明并且定义所以需要的函数
int add(int,int);
int sub(int,int);
int add(int num1,int num2)
{
return num1+num2;
}
int sub(int num1,int num2)
{
return num1-num2;
}
//声明并且定义一个函数指针,用于指向所需要调用的函数
int calc( int(*fp)(int,int),int,int);
int calc(int (*fp)(int ,int num2),int num1,int num2)
{
return (*fp)(num1,num2);
}
int main()
{
int num1,num2;
scanf("%d%d",&num1,&num2);
printf("%d+%d=%d",num1,num2,calc(add,num1,num2));
printf("%d-%d=%d",num1,num2,calc(sub,num1,num2));
}