关于返回值指针函数。并利用返回值指针函数,实现简单的学生成绩查询功能(C语言)

一个函数,不仅可以返回一个整型值,字符型值,同样也可以返回指针型数据,即返回一个地址。
定义返回指针值函数的形式:类型名 *函数名(参数列表)
例如 int a(int x,int y) //注意a两侧没有括号
利用返回值指针函数,实现一个学生成绩查询功能,可以先定义一个查询学生成绩的返回指针函数search,并将学生成绩放入一个二维数组。search函数的形参是一维数组和整形变量,主函数将数组名以及学生序号传递给形参。于是函数返回存放某学生成绩数组元素的地址

#include<stdio.h>
int main()
{
    float score[][4]={{50,60,70,80},{55,65,75,85},{56,66,76,86}};
    float *search(float(*pointer)[4],int n);
    float *p;
    int i,k;
    printf("输入学生序号;");
    scanf("%d",&k);
    printf("这位学生的各科成绩是:");
    p=search(score,k);//调用search函数,返回score[k][0]的地址
    for(i=0;i<4;i++)
        printf("%5.2f\t",*(p+i));//输出score[k][0]到score[k][3]的值
}
float *search(float(*pointer)[4],int n)//形参pointer是指向一维数组的指针变量
{
    float *pt;
    pt=*(pointer+n);//pt的值是&score[k][0]
    return(pt);
}

输出结果
在这里插入图片描述
注意,float *(pointer)[4]是指向包含4个元素的一维数组的指针变量。所以,pointer+1指向score数组序号为1的行,pointer+2指向score数组序号为2的行,
*(point+1)代表1行0列元素。
调用search函数时,将score数组首地址传给形参pointer,所以,调用search函数后,main函数得到一个地址&score[n][0],赋给p。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值