| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 548 人关注过本帖
标题:有一点不明白请大家说一下原因
只看楼主 加入收藏
bianfeng
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-28
结帖率:0
收藏
 问题点数:0 回复次数:3 
有一点不明白请大家说一下原因
#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;
}
2008-04-04 23:04
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
pointer是指向一维数组的指针,而且这个数组有四个float型元素
加1指向下一组数组
例如:
pointer初值指向{60,70,80,90}
加1后就指向{56,89,67,88}

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-04-04 23:11
bianfeng
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-28
收藏
得分:0 
为什么老潭的书说*(pointer+1)指向数组尾呢..我的理解和楼上是一样的.
2008-04-04 23:32
fuliewen
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-7-9
收藏
得分:0 
回复 3# 的帖子
数据在内存存储数组是连续的地址,,指向数组尾就是指向下一个一维数组的首地址。这样理解应该对吧?
2008-04-05 12:05
快速回复:有一点不明白请大家说一下原因
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031776 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved