| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 886 人关注过本帖
标题:数据结构的问题。
只看楼主 加入收藏
a3895177
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-1-11
结帖率:0
收藏
已结贴  问题点数:0 回复次数:4 
数据结构的问题。
程序代码:
void traversal(Object *obj)
{
    for (int i = 0 ;i<20; i++)
    {
        if (obj[i].nId==NULL)
        {
            cout<<"物品编号:"<<obj[i].nId+1<<endl;
            cout<<"物品名称:"<<obj[i].szName<<endl;
            cout<<"物品位置:"<<obj[i].szAddr<<endl;
            cout<<endl;
        }
    }
}struct Object
{
    int     nId;            //编号
    char szName[20];    //名字
    char szAddr[50];    //存放位置
};

这个是一个遍历的函数。由指针传入。
下面的代码就是那个结构体的定义。
问题就是:如何判断结构体为空。
我尝试这用结构体里面的某一个变量,比如:nId;
使用:if (obj[i].nId!=NULL)
判断这个时候是否为空。如果不为空的话,那么就输入数据。
可是奇怪的是:我使用obj[i].nId==NULL(即是为空),能正确输入。
而使用:if (obj[i].nId!=NULL)(即是不为空),却输入了烫烫烫烫烫烫烫烫之类的字符。
搜索更多相关主题的帖子: color Object 800 结构 
2011-01-11 11:50
pkwangxinjun
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:170
注 册:2010-8-29
收藏
得分:7 
你把下标往前推一位试试  要不行 把你的源码给我发一下  我给你看看
2011-01-11 13:13
li_danwang
Rank: 4
来 自:鄂州
等 级:业余侠客
帖 子:112
专家分:203
注 册:2010-11-12
收藏
得分:7 
这是么情况 你怎么输入的? int     nId;     跟NULL比较别扭哇

没事来C一下...   
2011-01-11 14:36
a3895177
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-1-11
收藏
得分:0 
那换个角度问,结构体如何判断为空?
2011-01-11 15:31
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:7 
void traversal(Object *obj)
{
    for (int i = 0 ;i<20; i++)
    {
        if (obj[i]->nId!=0)  //大哥,obj是指针,不是变量啊.若nId为0,那么为空,否则输出信息。前提把所有的结构变量的nId先置0再赋值.
        {
            cout<<"物品编号:"<<obj[i]->nId+1<<endl;
            cout<<"物品名称:"<<obj[i]->szName<<endl;
            cout<<"物品位置:"<<obj[i]->szAddr<<endl;
            cout<<endl;
        }
    }
}

[ 本帖最后由 qq1023569223 于 2011-1-11 18:27 编辑 ]

   唯实惟新 至诚致志
2011-01-11 18:25
快速回复:数据结构的问题。
数据加载中...
 
   



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

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