上一小节,我们了解了什么是按值调用和模拟按引用调用,简单回顾一下,按值调用是通过变量的地址存储值,通过变量名访问值;模拟按引用调用则是采用指针解决问题的方式。在这一小节,我们将对指针变量作为函数参数的一些程序做一些实现。
练习:
例题1.5从键盘输入某班学生某门课的成绩(每班人数最多不超过40人,具体人数由键盘输入),试分析下面的程序能否实现计算并输出最高分及相应的学生的学号。
#include <stdio.h>
#define N 40
void FindMax(int score[],long num[],int n,int pMaxScore,long pMaxNum)
{
int i;
pMaxScore=score[0];//假设第一个同学为最高分
pMaxNum=num[0];//记录当前学生学号
for (i=1;i<n;i++)
{
if (score[i]>pMaxScore)//获得最高分
{
pMaxScore=score[i];//不用交换,直接覆盖值
pMaxNum=num[i];