函数指针与数组:即把函数的指针作为数组元素
语法:
函数返回值类型 (*函数标识[数组元素个数]) (函数形参) = {数组元素1,元素2...};
#include <stdio.h>
/*
时间:2022-05-01 16:09
作者:sgbl888
功能:函数指针与数组(根据输入的数字播放电影)
知识点:
1、
2、
3、
*/
void yzwc(){
printf("1、雍正王朝\n");
}
void dmwc1566(){
printf("2、大明王朝1566\n");
}
void rsj(){
printf("3、人世间\n");
}
void jrnyy2(){
printf("4、假日暖洋洋2\n");
}
void fyjc(){
printf("5、峰烟尽处\n");
}
void xsff(){
printf("6、雪山飞狐\n");
}
int main(){
void (*Movie[6])() = {yzwc, dmwc1566, rsj, jrnyy2, fyjc, xsff};
printf("%zu\n", sizeof(Movie) / sizeof(Movie[5]));
char playList[21]; //最长输入不超过20个字符。这个程序没有判断下标是否越界或输入非数字字符的问题
scanf("%s", playList); //从键盘输入的字符串并存入char数组playList
for(int i = 0; playList[i] != '\0'; i++){
char num = playList[i]; //读取单个字符
num -= '0'; //把字符num的ASCII码与字符0的ASCII相减
num--; //因数组下标是从0开始,因此减1
(*Movie[num])(); //Movie[num]取函数指针,*Movie[num]还原成函数
//Movie[num)(); //也可这样调用函数
}
return 0;
}
运行后,键盘输入541235
输出结果如下:
5、峰烟尽处
4、假日暖洋洋2
1、雍正王朝
2、大明王朝1566
3、人世间
5、峰烟尽处