求助 关于 返回指针值的函数 的问题 书上的一个程序 不懂
/*有若干个学生的成绩(每个学生4门课程),找出其中不及格课程的学生及其学生号*/#include<stdio.h>
int main()
{
float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};
float*search(float(*pointer)[4]);
float *p;
int i,j;
for(i=0;i<3;i++)
{
p=search(score+i);
if(p==*(score+i);
{
printf("No.%d scores:",i);
for(j=0;j<4;j++)
printf("%5.2f",*(p+j));
printf("\n");
}
}
}
float *search(float(*pointer)[4])
{
int i;
float *pt;
pt=*(pointer+1);// pointer不是指向一个一维数组吗? 为什么书上解释pointer+1是把pt指向本行的末尾,而不是指向数组的下一个元素呢?
for(i=0;i<4;i++)
if(*(*pointer+i)<60) pt=*pointer;
return(pt);
}
这是谭浩强第267页的一个程序,请高手解释一下。书上的解释看不明白?在网站上找到过类似的例子。但还有一处不懂。
[ 本帖最后由 菜鸟auto 于 2011-3-8 21:35 编辑 ]