有一点不明白请大家说一下原因
#include "stdio.h"#include "conio.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 scrers:",i);
for(j=0;j<4;j++)
printf("%5.1f",*(p+j));
printf("\n");
}
}
getch();
return 0;
}
float *search (float (*pointer)[4])
{
int i;
float *pt;
pt=*(pointer+1); //请问 *(pointer+1)指向哪里..为什么呢..不明白???
for(i=0;i<4;i++)
if(*(*pointer+i)<60)
pt=*pointer;
return pt;
}
----------------解决方案--------------------------------------------------------
pointer是指向一维数组的指针,而且这个数组有四个float型元素
加1指向下一组数组
例如:
pointer初值指向{60,70,80,90}
加1后就指向{56,89,67,88}
----------------解决方案--------------------------------------------------------
为什么老潭的书说*(pointer+1)指向数组尾呢..我的理解和楼上是一样的.
----------------解决方案--------------------------------------------------------
回复 3# 的帖子
数据在内存存储数组是连续的地址,,指向数组尾就是指向下一个一维数组的首地址。这样理解应该对吧? ----------------解决方案--------------------------------------------------------