1 题目
函数:search()
功能:用指针函数输出学生成绩
描述:指针函数的使用,输入学生的序号,将在窗口输出该序号对应的学生的成绩
2 思路
指向函数的指针变量的形式如下:数据类型 (*指针变量名)()
例如
int * search()
*(p)() 表示定义一个指向函数的指针变量,用来存放函数入口地址。在程序设计过程中,将一个函数地址赋值给它,它就指向那个函数。函数指针变量赋值写法:
p = min;
在赋值的时候,只给出函数名即可**,函数名即地址**在使用函数指针调用函数的时候,要写出函数的参数
例如:
m = (*p)(a,b);
3 代码
#include <stdio.h> /** 函数:search() 功能:用指针函数输出学生成绩 描述:指针函数的使用,输入学生的序号,将在窗口输出该序号对应的学生的成绩 **/ int * search(int (*p)[4], int n) { int *pt = *(p+n); return pt; } int main(int argc, char const *argv[]) { int score[][4] = { {98,56,89,87}, {88,56,87,80}, {92,56,84,82}, {78,56,90,67} }; // 声明数组,对应四个学生的各科成绩 int no; // 保存学生编号 printf("输入学生编号:"); scanf("%d", &no); int *p = search(score, no); printf("学生编号为 %d 的学生成绩为:n", no); for (int i = 0; i < 4; ++i) { printf("%dt", *(p+i)); } putchar('n'); }
示例结果:
$ gcc ex020.c -o demo $ ./demo 输入学生编号:3 学生编号为3的学生成绩为: 78 56 90 67