Dee1997 2017-06-24 14:41 采纳率: 40%
浏览 1989
已采纳

为什么指针已经指向了0XCDCDCD 但仍不判断为空?

 while(NULL!=pnode)
    {
        /*for(i=0;i<G->getvsize();i++)
        {
        if((G->getVertex(i).x-pnode->adjvex.x<0.00000001)&&(G->getVertex(i).y=pnode->adjvex.y<0.00000001)

        }*/
        d[pnode->subsequnce]=pnode->length;
        p[pnode->subsequnce]=u;
        pnode=pnode->next;
        if (NULL!=pnode) //用于判断指针是否为空
        {
            break;
        }

    }

图片说明

如图 指针为0xcdcdcd 但仍跳入了判断语句

谢谢~

  • 写回答

3条回答 默认 最新

  • 战在春秋 2017-06-24 16:28
    关注

    C/C++中NULL是宏,其定义如下:

     #define NULL 0
    

    题目中pnode值为0XCDCDCD,和NULL(0)作比较,结果为不相等,if条件满足。
    因此会运行到break;这行。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部