小明同学吖 发表于 2022-6-26 22:40:00

求大佬详细解释

#include<stdio.h>
int main()
{
        double score[]={{60.0,70.0,80.5,90.5},{56.0,89.0,67.0,88.0},{34.2,78.5,90.0,88.5}};
        double *search(double(*pointer),int n);                       
        double *p;                                                                       
        int i,m;                                                               
       
        printf("请输入学生的学号:\n");
        scanf("%d",&m);
       
        printf("学生的成绩:\n",m);
       
        p=search(score,m);                                       
        for(i=0;i<4;i++)
        {
                printf("%5.2f\t",*(p+i));                       
       }
       
       printf("\n\n\n");
       
}
double *search(double(*pointer),int n)        //以下函数没懂求解释       
       {
               double *pt;                       
               pt=*(pointer+n);                                       
               return pt;                                                       
       }

ExiaGN001 发表于 2022-6-27 09:48:04

double *search(double(*pointer),int n)      //double (*pointer)是一个指向double型二维数组的指针   
         {//n应该是你想找的行数
               double *pt;                     
               pt=*(pointer+n);      //等同于pt=&pointer                              
               return pt;         //返回那一行所在位置,用于读取数据                                             
         }

小明同学吖 发表于 2022-6-27 22:52:13

//这个4 是啥意思?

ExiaGN001 发表于 2022-6-28 06:48:21

看到被选成最佳答案了,过来看看。
printf("学生的成绩:\n",m);
可以改成
printf("学生的成绩:\n");

小明同学吖 发表于 2022-6-30 23:48:44

ExiaGN001 发表于 2022-6-28 06:48
看到被选成最佳答案了,过来看看。
printf("学生的成绩:\n",m);
可以改成


那个(*pointer)是个啥意思研究了半天没懂

ExiaGN001 发表于 2022-7-1 06:47:02

本帖最后由 ExiaGN001 于 2022-7-1 06:48 编辑

小明同学吖 发表于 2022-6-30 23:48
那个(*pointer)是个啥意思研究了半天没懂

(*pointer)是个指针
(*pointer)就是一个指针,但是告诉系统这个指针指向的是一个有4个double型变量数组
所以说(*pointer)就是二维数组的另一种形式
(11点还在逛论坛啊)
页: [1]
查看完整版本: 求大佬详细解释