函数指针和指针函数
#include"stdio.h"
char* getWord(char c)
{
switch (c)
{
case 'A':
return "Apple";
case 'B':
return "Banana";
case 'C':
return "Cat";
case 'D':
return "Dog";
default:
return "None";
}
}
int main()
{
char input;
printf("please input a charactar:");
input = getchar();
printf("%c\n", input);
printf("%s\n", getWord(input));
return 0;
}
char *getWord(char c)
{
char str1[] = "Apple";
char str2[] = "Banana";
char str3[] = "Cat";
char str4[] = "Dog";
char str5[] = "None";
switch (c)
{
case 'A':
return str1;
case 'B':
return str2;
case 'C':
return str3;
case 'D':
return str4;
default:
return str5;
}
}
int main()
{
char input;
printf("please input a charactar:");
input = getchar();
printf("%c\n", input);
printf("%s\n", getWord(input));
return 0;
}
int square(int num)
{
return num*num;
}
int main()
{
int num;
int(*fp)(int);
printf("please input a number:");
scanf("%d", &num);
fp = square;
printf("fp=0x%x,%d\n", fp, (*fp)(num));
printf("fp=0x%x,%d\n",fp,fp(num));
return 0;
}
int add(int num1, int num2)
{
return num1 + num2;
}
int sub(int num1, int num2)
{
return num1 - num2;
}
int calculate(int(*fp)(int, int), int num1, int num2)
{
return (*fp)(num1, num2);
}
int main()
{
printf("3+5=%d\n", calculate(add, 3, 5));
printf("3-5=%d\n", calculate(sub, 3, 5));
return 0;
}
void function1(int);
void function2(int);
void function3(int);
int main()
{
void(*f[3])(int) = { function1, function2, function3 };
int choice;
printf("输入一个数字:范围0—2:");
scanf("%d", &choice);
while (choice >= 0 && choice < 3)
{
(*f[choice])(choice);
printf("输入一个数字:范围0—2:");
scanf("%d", &choice);
}
printf("程序运行结果。");
return 0;
}
void function1(int choice)
{
printf("输入了%d,运行了function1函数。\n", choice);
}
void function2(int choice)
{
printf("输入了%d,运行了function2函数。\n", choice);
}
void function3(int choice)
{
printf("输入了%d,运行了function函数。\n", choice);
}