当前位置: 代码迷 >> C语言 >> 又一个指针问题
  详细解决方案

又一个指针问题

热度:183   发布时间:2007-06-17 00:01:54.0
又一个指针问题

#include<stdio.h>
main()
{
float *search(float (*pointer)[4]);
float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};
float *p;
int j,i,m;

for(j=0;j<3;j++)
{ p=search(score+j);
if(p==score+j)
{printf("The No.%d: ",j);
for(i=0;i<4;i++)
printf("%5.2f\t",*(p+i));------------------这里点*(p+i)用*(*(score+j)+i)或*(*p+i)都好理解,为什么
} *(*p+i)却不能通过编译呢???错误:说非法使用浮点数;
printf("\n"); 而且*(p+i)我觉得应该等于*(score+j+i);是不能通过编译
} 的,而事实恰好相反;我的理解哪里出错了?
getch();
}
float *search(float (*pointer)[4])
{int i; float *pt;

pt=pointer+1;
for(i=0;i<4;i++)
if(*(*pointer+i)<60)
pt=pointer;
return (pt);
}
这个程序本身能通过编译,而且能输出正确的结果,但偶对红色部分不太了解,请路过的朋友
指教指教,不胜感激!!!!!


搜索更多相关的解决方案: 指针  

----------------解决方案--------------------------------------------------------
*(*p+i)
因为 *p 是个浮点数, 不是地址
----------------解决方案--------------------------------------------------------

谢谢herbert_1987一语点破偶这个愚蠢错误.


----------------解决方案--------------------------------------------------------
  相关解决方案